如何在 Symfony 表单中创建不需要的 DateIntervalType 字段
How to make a DateIntervalType field in Symfony form not required
我有一个 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()
或类似的东西)并且它可以为空:
class Template
{
/**
* @ORM\Column(type="dateinterval", nullable=true)
*/
private $effort;
// ...
}
提交的值为:
"effort" => [▼
"hours" => ""
"minutes" => ""
]
我想提交没有值的表单并且不会出现此错误。
如果将 widget
从 integer
更改为 text
,则不会出现错误:
$builder
->add('effort', DateIntervalType::class, [
// ...
'widget' => 'text',
// ...
]);
我有一个 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()
或类似的东西)并且它可以为空:
class Template
{
/**
* @ORM\Column(type="dateinterval", nullable=true)
*/
private $effort;
// ...
}
提交的值为:
"effort" => [▼
"hours" => ""
"minutes" => ""
]
我想提交没有值的表单并且不会出现此错误。
如果将 widget
从 integer
更改为 text
,则不会出现错误:
$builder
->add('effort', DateIntervalType::class, [
// ...
'widget' => 'text',
// ...
]);