代码之家  ›  专栏  ›  技术社区  ›  Gaylord.P

NotBlank断言和“必须是字符串类型,给定null”

  •  0
  • Gaylord.P  · 技术社区  · 7 年前

    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属性验证表单,我会出现以下错误:

    传递给AppBundle\Entity\UserContributorVersion::setName()的参数1必须是字符串类型,给定null

    我不明白,如果我没有空的断言,为什么要强制setName(string$name=null)?

    谢谢:)

    1 回复  |  直到 7 年前
        1
  •  1
  •   Max P.    7 年前

    对表单数据执行验证。如果对某些实体(选项)假设形式 data_class 则表单数据是应修改的实体。在将请求值设置为表单数据(在您的案例实体中)字段后,将执行验证。

    您可以在此处找到表单提交流程: https://symfony.com/doc/current/form/events.html#submitting-a-form-formevents-pre-submit-formevents-submit-and-formevents-post-submit

    enter image description here

    验证注册为 FormEvents::POST_SUBMIT POST_SUBMIT