代码之家  ›  专栏  ›  技术社区  ›  hous

Symfony 4.1.4-在编辑对象数据时,验证注释NotBlank不起作用,但在添加新对象时有效

  •  0
  • hous  · 技术社区  · 8 年前

    我使用的是symfony 4.1.4,我有一个奇妙的问题,注释验证长度有效,但NotBlank无效 编辑对象时 数据,但它是有效的 添加新对象时

    /**
     * @ORM\Column(name="purchaser", type="string", length=180)
     * @Assert\NotBlank(message="Purchaser is blank")
     * @Assert\Length(min="10", minMessage=" Purchaser min length ....")
     */
    private $purchaser;
    

    当长度小于10且我没事时,就会出现这种情况。 enter image description here

    但是当空白时,我得到了这个错误!!

    给定的参数类型应为“string”,“NULL”。 enter image description here

    **---------编辑-----------------------**

    当我移除 一串 从二传开始,它就起作用了!!

        public function setPurchaser(string $purchaser): self
    {
        $this->purchaser = $purchaser;
    
        return $this;
    }
    

    或者如果我保留字符串并添加 =null 那就很好用了。

     public function setPurchaser(string $purchaser = null): self
    
    2 回复  |  直到 8 年前
        1
  •  2
  •   Eöras    8 年前

    我也有同样的问题。。。

    当我创建一个firstName为空的新用户时,断言就起作用了。 但当我编辑他的时候,如果我删除我的名字输入,这将返回与你相同的错误。

    有人有索罗斯吗?

    我也换了二传手

    public function setFirstName(string $firstName): self
    {
        $this->firstName = mb_convert_case($firstName, MB_CASE_TITLE, "UTF-8");
    
        return $this;
    }
    

    到

    public function setFirstName(string $firstName = null): self
    {
        $this->firstName = mb_convert_case($firstName, MB_CASE_TITLE, "UTF-8");
    
        return $this;
    }
    

    这项工作很好,泰;)

        2
  •  2
  •   Nemke    7 年前

    用“?string”代替setter。

    推荐文章