CakePHP3のORMの「lastInsertId」の失敗時の戻り値について

CakePHP3で、insert文のORMを使うとき、よく以下のような書き方をします。

$query = $this->query()
  ->insert([
    'カラム名1',
    'カラム名2',
    '...'
  ])
  ->values([
    'カラム名1' => '保存する値',
    'カラム名2' => '保存する値',
    '...' => '...',
  ]);
return $query->execute()->lastInsertId();

このとき、lastInsertId()は、DBにレコード追加成功時のプライマリーキー(PK)を返してくれます。
string型で。

しかし失敗したときはfalseを返します。

よくわからなくなるのでメモ。

[PR] おすすめの本
この記事を書いた人
Nな人(えぬなひと)。
Nは本名から取っています。
Laravelが大好きなPHPerで、WEBを作るときはLaravelを技術スタックに絶対推すマン。
PHP、Pythonと、昔はperlを書いていたP言語エンジニア。
最近はNimを書いたりしています。