NotBlank 断言和 "must be of the type string, null given"
NotBlank assert and "must be of the type string, null given"
使用 Symfony 3.3,我有一个带有 NotBlank 断言的实体:
class UserContributorVersion
{
/**
* @var string
*
* @ORM\Column(type="string")
* @Assert\NotBlank()
*/
private $name;
/**
* Set name
*
* @param string $name
*/
public function setName(string $name)
{
$this->name = $name;
}
}
但是如果我使用 novalidate 属性验证表单,我会遇到这个错误:
Argument 1 passed to AppBundle\Entity\UserContributorVersion::setName() must be of the type string, null given
我不明白,如果我有 NotBlank 断言,为什么要强制 setName(string $name = null)?
谢谢你:)
对表单数据执行验证。如果表单应该用于某个实体(选项 data_class
已设置),则表单数据是应该修改的实体。在将请求值设置为表单数据(在您的案例中为实体)字段后执行验证。
您可以在此处找到表单提交流程:
https://symfony.com/doc/current/form/events.html#submitting-a-form-formevents-pre-submit-formevents-submit-and-formevents-post-submit
验证已注册为 FormEvents::POST_SUBMIT
事件。请求值设置为在 POST_SUBMIT
事件之前形成数据。
使用 Symfony 3.3,我有一个带有 NotBlank 断言的实体:
class UserContributorVersion
{
/**
* @var string
*
* @ORM\Column(type="string")
* @Assert\NotBlank()
*/
private $name;
/**
* Set name
*
* @param string $name
*/
public function setName(string $name)
{
$this->name = $name;
}
}
但是如果我使用 novalidate 属性验证表单,我会遇到这个错误:
Argument 1 passed to AppBundle\Entity\UserContributorVersion::setName() must be of the type string, null given
我不明白,如果我有 NotBlank 断言,为什么要强制 setName(string $name = null)?
谢谢你:)
对表单数据执行验证。如果表单应该用于某个实体(选项 data_class
已设置),则表单数据是应该修改的实体。在将请求值设置为表单数据(在您的案例中为实体)字段后执行验证。
您可以在此处找到表单提交流程: https://symfony.com/doc/current/form/events.html#submitting-a-form-formevents-pre-submit-formevents-submit-and-formevents-post-submit
验证已注册为 FormEvents::POST_SUBMIT
事件。请求值设置为在 POST_SUBMIT
事件之前形成数据。