cake PHP 3系 で最後にインサートした投稿のIDを取得する

CakePHPでLast Insert IDを取得する必要がある場合がありました。 調べていると、$getLastInsertID();を使う方法が出てきたので試してみるもののエラーに。

さらに調べていると、この$getLastInsertID();はcake PHP2系でしか使えないみたいでした。

cakePHP3系では、以下の書き方でLast Insert IDを取得することができます。 エンティティーはsaveメソッド実行後id を持っているのでsaveメソッド実行後に

$entity->id

として取得することができます。

$article = $this->ModelName->newEntity();

//...

if ($articlesTable->save($article)) {
    // $article エンティティーはsaveメソッド実行後idを持っている
    $id = $article->id;

    //.....
}