Что делает ограничение Required?
Что делает обязательное ограничение в конструкторе форм? Если поле не было отправлено (не пустое значение!), Я не получаю соответствующее сообщение об ошибке. Это поле просто игнорируется.
$builder
->add('firstname', TextType::class, [ 'constraints' => [new NotBlank()], 'required'=>true])
->add('lastname', TextType::class, [ 'constraints' => [new NotBlank(),] ,'required'=>true])
Как можно сказать, что поле всегда ДОЛЖНО быть представлено?
Спасибо.
2 ответа
Коллега нашел решение:
В связанной сущности вам нужно определить функцию обратного вызова следующим образом:
/**
* Check bank account by "CUSTOMER" - not null
* Because NotNull() not working in form type!
* @Assert\Callback()
*/
public function validateBankaccount(ExecutionContextInterface $context)
{
if ($this->type == self::TYPE_CUSTOMER && is_null($this->bankAccount)) {
$context->buildViolation('Bank account is required!')
->atPath('bankAccount')
->addViolation();
}
}
Обязательно означает, что для вашего поля необходимо указать значение. Это похоже на поведение HTML.
РЕДАКТИРОВАТЬ:
https://symfony.com/doc/current/reference/forms/types/form.html
https://symfony.com/doc/current/form/without_class.html
Проблема в ваших ограничениях, я не знаю наверняка, но если добавление их в вашу форму не решит вашу проблему, взгляните на добавление подтверждения вашей сущности, прикрепленной к вашей форме.
https://symfony.com/doc/current/reference/constraints/NotBlank.html
Затем подтвердите эту сущность в вашем контроллере
https://symfony.com/doc/current/validation.html
И, полагаясь на это, вы можете добавить ошибки в форму.