簡體   English   中英

Symfony 2 +主義2-DateTime字段不持久

[英]Symfony 2 + Doctrine 2 - DateTime fields not persisting

我有一個Blah類型的實體,具有以下字段:

/**
 * @var datetime $begin
 *
 * @ORM\Column(name="begin", type="datetime", nullable=true)
 */
private $begin;

/**
 * @var datetime $end
 *
 * @ORM\Column(name="end", type="datetime", nullable=true)
 */
private $end;

使用以下獲取器/設置器:

/**
 * @param $begin
 */
public function setBegin($begin)
{
    $this->begin = $begin;
}

/**
 * @return \DateTime
 */
public function getBegin()
{
    return $this->begin;
}

/**
 * @param $end
 */
public function setEnd($end)
{
    if ($end < $this->begin) {
        $this->end = $this->begin->add(\DateInterval::createFromDateString('1 day'));
    } else {
        $this->end = $end;
    }
}

/**
 * @return \DateTime
 */
public function getEnd()
{
    return $this->end;
}

相應的表單類型具有:

    $builder->add('begin', 'datetime', array(
            'label' => 'Begin',
            'required' => false,
    ));

    $builder->add('end', 'datetime', array(
            'label' => 'End',
            'required' => false,
    ));

以及相關方法的表單處理部分:

    $form = $this->createForm(new BlahType(), $blah);

    if ($request->getMethod() == 'POST') {
        $postData = $request->request->all();

        if (!empty($postData['save'])) {
            $form->handleRequest($request);

            $numThings = $postData['blah']['numThings'];

            if ($numThings) {
                for ($i = 0; $i < $numThings; ++$i) {
                    $thing = new Thing();

                    $blah->addThing($thing);
                }
            }

            $em->persist($blah);
            $em->flush();
        }
    }

當我嘗試保存這些條目時,盡管填充的實體為每個條目包含兩個數組,但null會傳遞回該實體

傳回實體的屏幕截圖:

在此處輸入圖片說明

$form->handleRequest()之后,填充的實體應該具有的屏幕截圖:

在此處輸入圖片說明

不用說,我很困惑。 根據docsdatetime字段應默認input datetime ,但我將數據作為每個字段的兩個數組序列返回-一個包含日,月和年的數組,以及其他帶有小時和分鍾。 即使這樣, null仍會傳遞回實體並保留在數據庫中。

莫名其妙。 有任何建議/答案嗎?

編輯:窗體本身在其viewDatanull

在此處輸入圖片說明

弄清楚了。 問題是由於PHP莫名其妙地只能識別大陸/城市時區,而不是舊的國家/時區時區。 美國/東部不再有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM