CakePHP4でモデルを読み込む方法【2パターン】

CakePHPではモデルはどこからでも呼び出せますが、やり方が二つあるので好きなほうで、やるのよいと思います。

loadModel

よく見る読み込み方法です。
Controllerで使えます。
CakePHP4の公式であまり見ない気がします。

$this->loadModel('Articles');
$this->Articles->save($entity);

ModelAwareTrait

実はloadModelはController以外でも使えて、
classにtraitすることで使えるようになります。

use ModelAwareTrait

TableRegistry::getTableLocator()->get

最近のCakeさんはこれを押している気がする

$articlesTable = TableRegistry::getTableLocator()->get('Articles');
$articlesTable->save($entity);

まとめ

loadmodelの場合は強制的に「$this->モデル名」に入ってしまうけど、
「TableRegistry::getTableLocator()->get」は変数に入れられるんですよね。とりあえずは好みの問題かな、個人的には「TableRegistry::getTableLocator()->get」は覚えられないです。。。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です