2017-07-14 25 views
1

我發現在FrozenTime對象一個奇怪的情況。FrozenTime對象謎

我從find()方法獲取數據,我把它發送到視圖如常。一個特定的字段來自MySQL時間列。

表名是sessions和領域被稱爲time

當迭代resulset,該列變爲:

object(Cake\I18n\FrozenTime) { 

    'time' => '2017-07-14T01:00:50+00:00', 
    'timezone' => 'UTC', 
    'fixedNowTime' => false 

} 

的謎開始調用debug($session->time->format('G:i:s'));有了這個的時候,我得到一個呼叫到空錯誤的成員函數的格式()。

在試圖解決這個問題,我所做的:

$moment = $session->time; 
debug($moment instanceof \Cake\I18n\FrozenTime); 

,我得到了一個true作爲回答。奇怪的是零(因爲錯誤說),如果它實際上是有內容的對象。我希望能夠到FrozenTime對象上運行->format()

它運行時,甚至更奇怪:

$b = new Cake\I18n\FrozenTime($moment); 
debug($b); 
debug($moment == $b); 

debug($b);返回相同的對象(蛋糕\的I18n \ FrozenTime)以上表現,並debug($moment == $b);回報true。你猜怎麼着? $b->format('G:i:s');工作在這一點上,它返回類似1:00:50(我打電話$session->time->format('G:i:s'));

它是一個錯誤,當期待?我做錯了什麼?爲什麼要以不同的方式兩個相等對象的行爲呢?

我應該?重命名錶,和/或現場

任何幫助將不勝感激謝謝

回答

1

解決

簡單的事實:!錯誤觸發強制t因爲一次性列返回NULL

看起來很容易當你看到它:)