1
我有以下Doctrine2實體:如何在Doctrine2 SELECT查詢中處理DateTime類型的默認值?
<?php
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Timestampable\Traits\TimestampableEntity;
/**
* @ORM\Entity
*/
class Account
{
use TimestampableEntity;
/**
* @var integer
*
* @ORM\Id
* @ORM\Column(type="integer", unique=true, nullable=false)
*/
private $id;
}
正如你可以看到我使用Gedmo Timestampable由包提供的Trait。它工作正常。
當我獲取數據時,問題發生,並且列updated_at
即將到來
NULL
0000-00-00 00:00:00
。對於這樣的情況下,DateTime
對象被翻譯成無效日期如下圖所示:
array (
'RowId' => 26944,
'synchflag' => 1,
'updatedAt' =>
DateTime::__set_state(array(
'date' => '-0001-11-30 00:00:00.000000',
'timezone_type' => 3,
'timezone' => 'UTC',
)),
)
我沒有檢查docs但沒有任何幫助的(或至少我沒有發現它,如果你讓我知道)
什麼是正確的方式來處理這個?
編輯:
也許在這裏正確的問題應該是:如果updated_at
即將爲0000-00-00 00:00:00
我怎麼把它變成NOW()
?您可能會注意到getUpdatedAt()
根據獲取的數據返回DateTime
。 SELECT
聲明有任何事件嗎?
在我的實體updated_at設置等於created_at。沒有面對這個問題 –
你可以調試爲什麼你的updatedAt屬性爲空?創建實體觸發器設置createdAt/updatedAt屬性。 – miikes