Validation 使用Symfony中的实体断言验证表单
我想在实体类中使用断言来验证表单,但当我提交表单时,它会说$form->isValid()为true 下面是我如何设置它的:Validation 使用Symfony中的实体断言验证表单,validation,symfony,entity,yaml,Validation,Symfony,Entity,Yaml,我想在实体类中使用断言来验证表单,但当我提交表单时,它会说$form->isValid()为true 下面是我如何设置它的: // config.yml validation: { enabled: true, enable_annotations: false } // validation.yml Software\Bundle\Entity\Program: properties: name: - NotBlank: ~ //
// config.yml
validation: { enabled: true, enable_annotations: false }
// validation.yml
Software\Bundle\Entity\Program:
properties:
name:
- NotBlank: ~
// MyForm
...
$builder
->add('name', 'text', [
'label' => 'word.name'
])
;
...
// Program.php
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255, nullable=false)
*/
private $name;
我也尝试通过注释,但没有帮助。
我知道我可以将“constraints”属性放在我的表单中,然后设置new NotBlank(),但我希望在实体级别进行验证,因为我将使用一个API,我希望在一个位置而不是两个位置进行验证
我的validation.yml文件被忽略了吗
编辑
我没有提到一件重要的事情,那就是我的形体嵌入了另一个形体。在这种情况下,必须在表单选项中使用“cascade\u validation”属性
这个答案对我帮助很大您的配置似乎正确,但您的yml被忽略,请尝试清除缓存 你的validation.yml在哪里?它必须位于以下路径中:src/AppBundle/Resources/config/validation.yml 在注释示例中,没有必须在属性上添加@Assert\NotBlank的验证约束。Nullable=false仅适用于数据库架构 关于验证的Symfony文档:
关于使用validation.yml的相同问题:它位于src/Software/Bundle/Resources/config文件夹中。我知道我的示例不包含@Assert\NotBlank(),因为我想通过.yml文件使用它。我只提到我也试过使用注释,但也不起作用。我甚至试过下面的解决方案,但没有帮助。不知道为什么它不起作用,你试过了吗?或者在实体中使用资产?也就是说,它现在可以工作了?