php - Symfony 将参数传递给验证器约束

标签 php symfony parameters annotations constraints

我试图通过使用配置文件而不是硬编码的东西来使我的应用程序灵活,但遇到了验证约束的问题:

/**
 * @var ArrayCollection[SubjectTag]
 *
 * @ORM\OneToMany(targetEntity="SubjectTag", mappedBy="subject")
 * @Assert\Count(max = 15, maxMessage = "You can't create more than 15 tags.")
 * @Assert\Valid()
 */
protected $tags;

做这样的事情会更好:

/**
 * @var ArrayCollection[SubjectTag]
 *
 * @ORM\OneToMany(targetEntity="SubjectTag", mappedBy="subject")
 * @Assert\Count(max = "%subject.max_tags%", maxMessage = "You can't create more than %subject.max_tags% tags.")
 * @Assert\Valid()
 */
protected $tags;

但是通过调试我发现我的参数从未恢复过。

有什么办法可以实现吗?

最佳答案

唯一的方法是创建自定义验证约束:

http://symfony.com/doc/current/cookbook/validation/custom_constraint.html

您可以将您需要的任何参数或服务注入(inject)验证器。

关于php - Symfony 将参数传递给验证器约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27467587/

相关文章:

javascript - 在 vanilla JS 的 URL 中哈希后获取参数值

php - 尝试将Android中捕获的用户名和密码传递给PHP来查询MYSQL数据库

php - 查找通用脚本 PHP 的当前域 URL

javascript - Yii CGridView 使用键盘的箭头向上和向下移动选定的行

php - 将一个表中的列与另一个表中的列进行匹配

php - 如何使用 Symfony 将网页(html)插入数据库?

php - 使用 Symfony 2 序列化器对对象中的嵌套结构进行非规范化

javascript - 使用Javascript获取奏鸣曲中字段输入的ID

c# - 在 C# 中将泛型委托(delegate)作为方法参数传递

c - "[*]"(星号修饰符)在 C 中是什么意思?