Symfony 4.1.4 - Проверка аннотации NotBlank не работает при редактировании данных объекта, но работает при добавлении нового объекта - PullRequest
0 голосов
/ 17 сентября 2018

Я использую 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

** ------------------ РЕДАКТИРОВАТЬ ----------------------- **

Когда я удаляю String из сеттера, тогда он работает !!

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

    return $this;
}

Или если ясохраните строку и добавьте = null , тогда все будет хорошо.

 public function setPurchaser(string $purchaser = null): self

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Вместо этого используйте «? String» для вашего установщика.

0 голосов
/ 21 сентября 2018

У меня та же проблема ...

Когда я создаю нового пользователя с пустым firstName, у меня работает Assert.Но когда я его отредактирую, если я удалю свой ввод 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;
}

и это прекрасно работает, ты;)

...