回归负面年份的学说

时间:2016-07-25 12:02:24

标签: php symfony doctrine-orm doctrine

在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),在那个对象中,错误的日期也是如此。在数据库中,它是一个空字段。

0 个答案:

没有答案