Cakephp PHP プログラミング

【Cakephp2→4】モデル編: save()後の新規IDの取得の差異

対象のデータを保存後に、その保存した新規IDを取得したい場合があります。

Cake2では getLastInsertID() が用意されていて、save() の成功後に利用することで新規IDを取得できます。

Cake2: getLastInsertID()

// save()成功後に利用することで新規IDが取得できる
$this->getLastInsertID()

Cakephp4では getLastInsertID() 自体がなくなっていて、エンティティにIDがセットされている状態になっています。

Cake4: $entity->id

if (!$this->save($staffEntity)) {
    return '保存処理に失敗しました';
}
// save() が成功した後は当該エンティティに新規idがセットされる
debug($staffEntity->id);
exit;

Cake2 から Cake4 では大分扱い方が変わるので、気をつけたい所です。

-Cakephp, PHP, プログラミング