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

标签 php symfony

我目前正在浪费大量时间做一件简单的事情。

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

将此事件监听器添加到构建器工作正常:

->addEventListener(
    FormEvents::POST_SUBMIT, 
    function (FormEvent $event) { 
        $event->stopPropagation(); 
    }, 
    900
)

但它禁用了所有字段的检查器,而我只想要一个字段。

'required' => false'csrf_protection' => false 不要这样做

任何帮助谢谢。

最佳答案

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

  • AppBundle/Resources/validation.[yml|xml|php] 查找您的实体名称,然后字段名称只是注释/删除或修改约束(如果找到的话)。

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

  • required type 和 <input type="date"> 中的选项可以在客户端应用约束,所以确保它不是你想摆脱的那种约束,你说你删除了required但也许是 input type field坚持。

  • 然后您可以在您正在使用的包中的事件中应用约束,在您的源文件中搜索错误消息可以帮助您找到负责该隐藏约束的代码

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

附言required不是约束,但可以看起来很像!

关于php - 删除单个字段的验证器约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41875840/

相关文章:

php - Cakephp Web 服务问题 "add"

php - 在 symfony/goutte 中加入 URL

eclipse - 无法让 Symfony2 Eclipse 插件工作

php - Symfony 第一页 - 自动加载器预期的类 […] 将在文件中定义

symfony - 将 "help"消息添加到字段

php - Laravel 未在日期时间字段上保存时区偏移量

php - 我怎样才能使用php中的prepare语句获取insert_id?

php - index.php/index.html 文件中模糊的 JavaScript 代码

php - MySQL 因 curl (智能)引号而窒息

symfony - 使用编译器 channel 覆盖 symfony 服务标签