在Symfony 3中构建表单时,我在数据库中有一些Datetime
的记录。有些是null
,有些是填充的。
我使用Doctrine来生成实体,这样的属性如下所示:
/**
* @var \DateTime
*
* @ORM\Column(name="date_start", type="datetime", nullable=false)
*/
private $dateStart;
/**
* @var \DateTime
*
* @ORM\Column(name="date_end", type="datetime", nullable=true)
*/
private $dateEnd;
/**
* @var \DateTime
*
* @ORM\Column(name="date_sale_start", type="datetime", nullable=true)
*/
private $dateSaleStart;
/**
* @var \DateTime
*
* @ORM\Column(name="date_sale_end", type="datetime", nullable=true)
*/
private $dateSaleEnd;
/**
* @var \DateTime
*
* @ORM\Column(name="date_insert", type="datetime", nullable=true)
*/
private $dateInsert;
/**
* @var \DateTime
*
* @ORM\Column(name="date_update", type="datetime", nullable=true)
*/
private $dateUpdate;
就我所见,似乎没有任何错误。 然后我像这样构建表单:
$repository = $this->getDoctrine()->getRepository('AppBundle:Offers');
$offer = $repository->find($id);
$form = $this->createFormBuilder($offer)
->add('date_end', DateTimeType::class, array(
'empty_data' => '0000-00-00 00:00:00'
))
->add('date_sale_start', DateTimeType::class, array(
'empty_data' => '0000-00-00 00:00:00'
))
->add('date_sale_end', DateTimeType::class, array(
'empty_data' => '0000-00-00 00:00:00'
))
->add('date_insert', DateTimeType::class, array(
'empty_data' => '0000-00-00 00:00:00'
))
->add('date_update', DateTimeType::class, array(
'empty_data' => '0000-00-00 00:00:00'
))
当我执行dump($form)
时,这会向我提供以下数据对象:
-dateSaleStart: DateTime {#487 ▼
+"date": "-0001-11-30 00:00:00.000000"
+"timezone_type": 3
+"timezone": "Europe/Amsterdam"
}
我对如何解决这个问题毫无头绪。谁能帮助我?
编辑我也是dump($offer)
,在那个对象中,错误的日期也是如此。在数据库中,它是一个空字段。