我正在尝试获得一个经过验证的表单,但它的行为很奇怪,我是symfony2中的新手,所以我一定会错过一些东西。
我使用SonataAdminBundle创建表单和CRUD控制器。我的ResponsableDato
实体拥有此属性:
/**
* @var string $contacto
* @Assert\NotBlank(message="Please enter your name.")
* @Assert\Length(min="3", minMessage="too short."))
* @ORM\Column(name="contacto", type="string", length=100, nullable=true)
*/
private $contacto;
如果我将contacto
字段留空,则会向我显示"Complete this field"
条消息,而不是"Please enter your name"
。如果我输入一个字符,它会通过NotBlank
验证但忽略长度验证。
我能错过什么?听起来好像我必须覆盖某些东西才能使它工作
答案 0 :(得分:0)
你也在谈论html5验证或isValid()到form_errors()案例?
我非常确定“填写此字段”与表单字段中的“必需”选项相关
$builder->add('contacto', 'text', array('required' => false));
将required设置为false并查看自定义错误消息:)
编辑:
use Symfony\Component\Validator\Constraints as Assert;
[...]
/**
* @Assert\NotNull()
*/
private $contacto;
这将在提交后触发验证错误,但如果表单中没有此字段的数据,如果需要避免使用空字符串,请使用@Assert \ NotBlank()