作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
此时,我正在使用 Symfony Validator 组件在我的实体类中使用注释来实现验证。
Symfony 文档显示您可以使用某些占位符通过消息传递变量,并且这些消息可以由 Translator 组件进行翻译。
例如,可以编写以下注释:
/**
* Assert\Length(
* min = 5,
* max = 10,
* minMessage = "Title too short: {{ limit }}",
* maxMessage = "Title too long: {{ limit }}"
*/
protected $title;
这工作正常,但我想知道您可以使用哪些类型的占位符?是否可以创建自定义占位符?
我知道 {{ value }}
占位符存在(并且有效),但它不在 Symfony 的有关如何使用长度验证的文档页面上。
我想使用 {{ key }}
或 {{ name }}
等占位符标记来传递字段的技术名称(在本例中) “title”),这样我就可以将我的 minMessage
写为 minMessage = "{{ field }} 太短:{{ limit }}"
我尝试检查 Symfony 的标准组件以了解如何处理这些占位符,但我找不到可用的正确变量列表。
请帮助我! T_T
最佳答案
如果您查看作为示例发布的 LengthValidator 的代码,您会发现这些“变量”只是在其自己的 Validator 类中替换的静态字符串。
因此,所有都是自定义的,这也可能是没有可用列表的原因。
类(class):
https://github.com/symfony/Validator/blob/master/Constraints/LengthValidator.php
相关片段:
if (null !== $constraint->max && $length > $constraint->max) {
$this->buildViolation($constraint->min == $constraint->max ? $constraint->exactMessage : $constraint->maxMessage)
->setParameter('{{ value }}', $this->formatValue($stringValue))
->setParameter('{{ limit }}', $constraint->max)
->setInvalidValue($value)
->setPlural((int) $constraint->max)
->setCode(Length::TOO_LONG_ERROR)
->addViolation();
return;
}
关于Symfony2 验证器消息 : Which variables are available?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27703395/
我是一名优秀的程序员,十分优秀!