Php 删除单个字段的验证器约束

Php 删除单个字段的验证器约束,php,symfony,Php,Symfony,我现在正在浪费很多时间做一件简单的事情 我想从symfony的特定字段中删除表单检查器/验证器 将此eventlistener添加到生成器工作正常: ->addEventListener( FormEvents::POST_SUBMIT, function (FormEvent $event) { $event->stopPropagation(); }, 900 ) 但是它禁用了所有字段的检查器,我只想要一个字段 'requ

我现在正在浪费很多时间做一件简单的事情

我想从symfony的特定字段中删除表单检查器/验证器

将此eventlistener添加到生成器工作正常:

->addEventListener(
    FormEvents::POST_SUBMIT, 
    function (FormEvent $event) { 
        $event->stopPropagation(); 
    }, 
    900
)
但是它禁用了所有字段的检查器,我只想要一个字段

'required'=>false
'csrf\u protection'=>false
不要这样做


任何帮助,谢谢。

约束可能来自多个方面。从你的问题来看,我不确定你想要摆脱的约束来自哪里

  • AppBundle/Resources/validation.[yml | xml | php]查找实体名,然后查找字段名,如果找到约束,只需注释/删除或修改约束即可

  • 如果您的类型中有约束,则表单类型可以应用约束。只需打开EntityType.php类,查找字段名,并检查是否有用于约束的选项

  • required
    类型内的选项和
    可以在客户端应用约束,因此确保它不是您想要摆脱的那种约束,您说过您删除了
    required
    ,但可能会保留一个
    输入类型字段

  • 然后,您可以让constraint apply inside事件从您正在使用的捆绑包中执行。在源文件中搜索错误消息可以帮助您找到负责该隐藏约束的代码

Symfony约束在失败时应返回一条人类可读的错误消息


p.S.
必需
不是约束条件,但可以看起来很像

首先,谢谢你的回复。我有一个有很多字段的表单,比如姓名简历等等。。。和一个名为标记的实体字段。用户可以使用Javascript直接在字段中添加标记,但是symfony的验证器说该值不正确,因为用户选择的字符串实际上不是一个实体。我只希望验证器跳过对这个特定字段的任何检查,比如$event->stopPropagation();做除了stopPropagation对所有领域都适用,我只想知道如何在一个特定领域应用它。我希望我很清楚,再次感谢您的回复您的问题来自transformer not constraint您的表单应该使用此类型仔细查看
allow\u add,prototype和entry_type
在您的案例中,
entry_type
非常重要,因为它将告诉symfony如何转换来自prototype的数据,因此javascript u需要基于prototype添加新元素;)读得好,先生:)