Все делаю
по официальной документации:
Entity
class Passport
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @Assert\NotBlank
* @ORM\Column(type="string", length=255, nullable=false)
*/
private $series;
/**
* @Assert\NotBlank
* @ORM\Column(type="string", length=255, nullable=false)
*/
private $number;
/**
* @Assert\NotBlank
* @ORM\Column(type="date", nullable=false)
*/
private $issueDate;
/**
* @Assert\NotBlank
* @ORM\Column(type="string", length=255, nullable=false)
*/
private $issueBy;
//...
PassportType
class PassportType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('series', null, [
'label' => 'Серия',
])
->add('number', null, [
'label' => 'Номер',
])
->add('issueDate', null, [
'label' => 'Дата выдачи',
])
->add('issueBy', null, [
'label' => 'Кем выдан',
])
;
}
//...
Test:
public function testFailed(): void
{
$entity = new Passport();
$form = $this->factory->create(PassportType::class, $entity);
$form->submit([
'series' => null,
'number' => null,
'issueDate' => null,
'issueBy' => null,
]);
$this->assertFalse($form->isValid()); // true
}
Тест валится, потому что форма считает, что все валидно.