Symfony 获取表单视图(或表单生成器)中要与JS一起使用的实体断言属性
我试图从表单访问实体类中定义的断言信息Symfony 获取表单视图(或表单生成器)中要与JS一起使用的实体断言属性,symfony,Symfony,我试图从表单访问实体类中定义的断言信息 class MyEntity { [...] /* * @Assert\Count(min="1", max="3") */ protected $myfield; [...] } 其目的是自定义视图。 在本例中,我想显示一条消息,告诉您必须在[min]和[max]项之间输入 我在form\u div\u layout.html.twig中转储了很多变量 我试图探索FormBuilder对象,但没有找到这个 你知道实现这一目标
class MyEntity {
[...]
/*
* @Assert\Count(min="1", max="3")
*/
protected $myfield;
[...]
}
其目的是自定义视图。
在本例中,我想显示一条消息,告诉您必须在[min]和[max]项之间输入
我在form\u div\u layout.html.twig中转储了很多变量
我试图探索FormBuilder对象,但没有找到这个
你知道实现这一目标的方法吗
PS:对不起,我的英语很差
在Martin Rios回答后编辑:
目标不是提供错误消息
最终目标是将这些值用于构建视图
例如,如果您使用这个jQuery插件:,您可以有一个add item链接和一个remove item
如果我想在集合达到最大大小时禁用add item链接,我需要在JavaScript中操作constraint属性
我试着研究这个插件,但不明白它是如何工作的…你为什么不像以前那样做呢 这比在实体内进行要容易得多。同时,您还可以享受不将实体与Symfony耦合的好处
# src/Acme/BlogBundle/Resources/config/validation.yml
Acme\BlogBundle\Entity\MyEntity:
properties:
myfield:
- Count:
min: 1
max: 3
minMessage: "You must specify at least one item"
maxMessage: "You cannot specify more than {{ limit }} items"
确保要验证的属性是集合的属性,即实现可计数的数组或对象
在chakh–l版本之后编辑:
您不需要使事情过于复杂,如果您想从某个地方访问它,只需将这些值保存在parameters.yml中,然后执行
AFAIK您不能在验证中使用parameters.yml中定义的变量,否则这将非常容易
但我试着永远记住,形式就是形式,观点是不同的东西。因此,如果您想保持简单,只需将此min/max值作为附加模板数组传递,并在parameters.yml中定义它。只有当你需要更深入,然后将它们注入到自定义验证器中,并将它们放在一个地方,但我个人认为这听起来有点过于复杂了谢谢你的回答。我认为我的消息中的注释与您的语法相同。目标不是显示错误消息,而是将这些值用于构建视图。我会更准确地编辑我的信息。我不确定是否真的很清楚,但我的问题不是关于验证。这是关于显示与验证相关的信息,但在用户提交数据之前,更多的是关于人体工程学:防止错误而不是检测错误我理解你的意思。但是@Assert\Countmin=1,max=3用于验证。只有在提交后才能访问/检查该值。然后,如果要防止,只需在其他位置定义此值,并将其作为参数传递到视图中。您最初定义问题的方式都是关于验证的。我同意我的帖子可能有点混乱,因为我试图显示通常在验证后显示的消息。在formview中,可以访问值,然后访问基础实体。我认为我还没有找到解决方案,我想验证时使用的机制可以复制。的确,我可以手动将该值传递给视图,但由于该值已在实体中定义,因此我希望获得它们。我相信另一种方法是:如何使用实体元数据实现客户端验证?