Cakephp4ってホント厄介ですね。
モデルを呼び出して新規登録するだけで、3時間かかりました!!
ひえーーー><
saveするだけで、迷うことはなかったのですが、公式サイト(https://book.cakephp.org/4/ja/orm/saving-data.html)では
saveは新しいエンティティを渡すとこんな感じにできるよ!
って書いてあります。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
use Cake\ORM\TableRegistry; // Prior to 3.6 use TableRegistry::get('Articles') $articlesTable = TableRegistry::getTableLocator()->get('Articles'); $article = $articlesTable->newEntity(); $article->title = '新しい記事'; $article->body = 'これは記事の本文です'; if ($articlesTable->save($article)) { // $article エンティティーは今や id を持っています $id = $article->id; } |
お!なるほど、CakePHP3.9以降はこんな感じでやるんだなと。
やりましたよ!3時間も
こんなエラーで動けない。。。
Too few arguments to function Cake\ORM\Table::newEntity(), 0 passed in /work/backend/src/Controller/XXXController.php on line 189 and at least 1 expected
ぐぬぬぬぬ
保存できない!!
それでこうやったらできた!
1 2 3 4 5 6 7 8 9 10 |
// Prior to 3.6 use TableRegistry::get('Articles') $articlesTable = TableRegistry::getTableLocator()->get('Articles'); $article = $articlesTable->newEmptyEntity(); $article->title = '新しい記事'; $article->body = 'これは記事の本文です'; if ($articlesTable->save($article)) { // $article エンティティーは今や id を持っています $id = $article->id; |
わかります??
newEmptyEntity()
ですよ!!
最初からこう書いてよ!!公式さん!!