Как сделать поле DateIntervalType в форме Symfony не обязательным - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть поле DateIntervalType:

    $builder
        ->add('effort', DateIntervalType::class, [
            'label' => false,
            'required' => false,
            'widget' => 'integer',
            'input' => 'dateinterval',
            'with_years' => false,
            'with_months' => false,
            'with_days' => false,
            'with_hours' => true,
            'with_minutes' => true,
        ]);

Если я отправляю форму, я получаю сообщение об ошибке, что она недействительна, если я оставляю часы и минуты пустыми. У меня нет ограничений для атрибута объекта (нет @Assert\NotBlank() или что-то в этом роде), и он может иметь значение null:

class Template
{
    /**
     * @ORM\Column(type="dateinterval", nullable=true)
     */
     private $effort;

    // ...
}

Отправленные значения:

"effort" => [▼
    "hours" => ""
    "minutes" => ""
]

Я хочу отправитьформа без значений и без получения этой ошибки.

1 Ответ

0 голосов
/ 09 ноября 2019

Вы не получите ошибки при изменении widget с integer на text:

$builder
    ->add('effort', DateIntervalType::class, [
        // ...
        'widget' => 'text',
        // ...
    ]);
...