When building a form in Symfony 3, I have some records in the database which are Datetime
. Some are null
, some are filled.
I used Doctrine to generate the entities and such, the properties look like this:
/**
* @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;
There doesn't seem to be anything wrong as far as I can see. Then I build the form like so:
$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'
))
This presents me with the following data object when I do dump($form)
:
-dateSaleStart: DateTime {#487 ▼
+"date": "-0001-11-30 00:00:00.000000"
+"timezone_type": 3
+"timezone": "Europe/Amsterdam"
}
I'm clueless as how to fix this. Who could help me out?
EDIT I also dump($offer)
and in that object, there's also the wrong date. In the database it is a null field.