I found a strange case in a FrozenTime object.
I get data from a find() and I send it to the view as usual. One particular field comes from a MySQL time column.
The table name is sessions
and the field is called time
.
When iterating the resulset, this column becomes:
object(Cake\I18n\FrozenTime) {
'time' => '2017-07-14T01:00:50+00:00',
'timezone' => 'UTC',
'fixedNowTime' => false
}
The mistery starts when calling debug($session->time->format('G:i:s'));
With this, I get a Call to a member function format() on null error.
While trying to solve the issue, I did:
$moment = $session->time;
debug($moment instanceof \Cake\I18n\FrozenTime);
and I got a true
as an answer. Strange to be null (as the error says) if it is actually an object with content. And I expect to be able to run a ->format()
on a FrozenTime object.
It’s even more strange when running:
$b = new Cake\I18n\FrozenTime($moment);
debug($b);
debug($moment == $b);
debug($b);
returns the same object(Cake\I18n\FrozenTime) showed above, and debug($moment == $b);
returns true
. And, guess what? $b->format('G:i:s');
works at this point and it returns something like 1:00:50
(as I was expecting when calling $session->time->format('G:i:s'));
Is it a bug? Am I doing something wrong? Why two equal objects behavior in a different manner?
Should I rename the table and/or the field?
Any help will be appreciated. Thank you.