我想在Entity类中使用asserts验证表单,但是当我提交表单时,它表示$ form-> isValid()为true。
以下是我如何设置它:
// 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;
我也通过Annotations尝试但它没有帮助。 我知道我可以提出约束条件。属性到我的表单,并设置新的NotBlank()但我想在实体级别进行验证,因为我将使用API,我想在一个地方而不是两个验证。
我的validation.yml文件是否被忽略或是什么?
修改 我没有提到一个重要的事情,即我的表格嵌入到另一个表格中。在这种情况下,您必须使用' cascade_validation'表单选项中的属性。
这个答案对我有很大帮助Symfony2 - Validation not working for embedded Form Type
答案 0 :(得分:0)
您的配置似乎正确,但您的yml会被忽略,请尝试清除缓存。
你的validation.yml在哪里?它必须位于以下路径中:src / AppBundle / Resources / config / validation.yml
在注释示例中,没有验证约束,您必须在属性上添加@Assert \ NotBlank。 Nullable = false仅适用于您的数据库架构。
关于验证的Symfony doc:http://symfony.com/doc/current/cookbook/validation/custom_constraint.html#using-the-new-validator
关于使用validation.yml:Symfony2 how to load validation.yml
的相同问题