CakePHP3で日付(Datetime)をMySQLに保存できない!
CakePHP3で時刻(DataTime型)を保存しようと思ったんだけど、なかなかできなくて躓いてしまった・・。
下記のようなコードで現在の日時をsaveしようとしたけども、保存されるのは「"0000-00-00 00:00:00"」というMySQLに設定したデフォルト値になってしまう・・。
$name = "pokotan"; $text = "ほげげげ"; $timestamp = date('Y-m-d H:i:s'); $data = compact("name", "text", "timestamp"); $entity = $this->Hogege->patchEntity($entity, $data); $result = $this->Hogege->save($entity);
CakePHPでは、SQLに時刻を突っ込むときは下記のように「Time」の型を使わないといけないみたいですね。これでうまくいきました。
$name = "pokotan"; $text = "ほげげげ"; $timestamp = new Time(date('Y-m-d H:i:s')); $data = compact("name", "text", "timestamp"); $entity = $this->Hogege->patchEntity($entity, $data); $result = $this->Hogege->save($entity);
ちなみに「Time」のクラスを使うには、冒頭で「use Cake\I18n\Time;」の名前空間の宣言がいるので、忘れず書き込んでおいてくださいね。
以上です!