我正在尝试我的第一个Symfony应用程序,但是当我使用表单时,发生了一些违反直觉的事情。
从我的代码中可以看到,我有一个日期字段,默认为当前日期。但是当我将一个对象传递给表单时,这个默认值将覆盖该对象的当前日期。
我知道这就是它应该如何发生('的默认值为表单字段是直接从底层数据结构(例如一个实体或数组)。data选项将覆盖此默认值。',从http://symfony.com/doc/current/reference/forms/types/date.html#data)。
是否有任何方法来抑制这种行为,只显示默认值,如果没有对象传递?
$builder
// other code
->add('date', 'date', array(
'data' => new DateTime()
))
// other code
我可能会直接在我的新实体中设置它,而不是固定在一个形式
class YourClass
{
private $date;
//...
public function __construct()
{
$this->date = new DateTime;
}
}