假设我的实体中有一个可以为空的datetime字段:
class Foo
{
/**
* @ORM\Column(name="due", type="datetime", nullable=true)
*/
private $due;
public function getDue()
{
return $this->due;
}
public function setDue($due)
{
$this->due = $due;
return $this;
}
}
现在在 FooType.php
中我为此定义了一个表单字段:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
// ...
->add('due', 'datetime')
// ...
;
}
但是,即使该字段可以为空,呈现的表单字段也只允许用户输入日期/时间,但不能说它应该是 null
.
我想要一个像这样的单选按钮UI:
( ) No due date
( ) Due date: [ control ]
或者是一个复选框:
[ ] Due date: [ control ]
理想情况下,如果选择“无截止日期”/未选中该复选框,则应禁用该控件 .
是否可以在Symfony中优雅地完成这项工作?
1 回答
Afaik theres没有symfony提供的解决方案
我会
并在视图中使用html和js实现逻辑
所以两个复选框点击截止日期然后显示日期时间输入
你只需要在提交之前将值(null || thedatetimeinputvalue)设置为隐藏字段