我使用Symfony 2.8。
我有一张名为"Docentes"的表,其中包含一个DateTime字段 "fechaAlta"。
当我添加新记录时,我需要该字段的默认值为"今天"
我使用指令generate:doctrine:crud
生成CRUD。
Symfony在文件"DocentesController.php"中创建了两个函数:"newAction"和"editAction"(以及其他)。两个函数都使用相同的表单,插入到文件夹"Form"下的"DocentesType.php"文件中:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('fechaAlta', 'date')
->add('dni')
#
;
}
我尝试了两个解决方案:
第一种:在名为 "Docentes.php" 的实体文件中添加函数:
public function __construct()
{
$this->fechaAlta = new \DateTime();
}
但是当我使用表单添加新记录时,“fechaAlta”字段显示的值是:2011年1月1日。而不是当前日期。
第二个问题:
我编辑了buildForm函数:
->add('fechaAlta', 'date', array(
'data' => new \DateTime()))
##
现在,当我添加一个新的记录时,我再次获得这些值:Day 01,Month 01和Year 2011,但是当我编辑一条记录时,Symfony会更改我的原始值,例如2016-03-25,并设置今天的值!这正好与我所需相反!
newAction
中调用$entity->setFetchAlta(new \DateTime());
吧? - ccKep