質問: $hogeVal; $table->save($newData); } } ``` * モデルについて TableフォルダにHogehogesTable.php EntityフォルダにHogehoge.php というファイルをそれぞれ、内容も問題なく用意してあると仮定させてもらいます。 ### 自分で調べたこと 上記でも触れた通り、自分の持っている教科書では、Formを通じてのパラメータのカラム追加しか書いておらず、また検索エンジンで調べたところ、そもそもCakePHP3の記事が少なく、あったとしてもPOSTパラメータの記事が多く参考になりそうなものは見当たりませんでした。 $this->request->queryでGETパラメータを取得する、というところまでは辿り着きましたが、 肝心のDB追加ができません。 ただ、教科書を熟読していて気がついたのは、 POSTによるページ遷移の受け渡し等では、 テンプレート側に$this->Form->create($entity・・・ コントローラ側に$this $this->set('entity',$this->Reviewresults->newEntity());・・・ といったページ遷移前にフォームとエンティティを関連づける処理が書かれており、 この点が、リンクをクリックする仕様では、そのままでは書けず、つまづいている原因になっていると考えています。 もしご存知の方がいれば、ご指摘頂ければ有り難いです。 よろしくお願いします。
回答: クエリパラメータやカラム名はhogeではなくnameだと思います。 ``` public function test(){ $nameVal = $this->request->query('name'); $table = TableRegistry::get('hogehoges'); $newData = $table->newEntity(); $newData->name = $nameVal; $table->save($newData); } ``` 余談ですが... ControllerでTableにアクセスする場合、TableRegistry::get()よりloadModel()を使うのが一般的です。 ``` public function test(){ $this->loadModel('Hogehoges'); $entity = $this->Hogehoges->newEntity(); $entity->name = $this->request->query('name'); $this->Hogehoges->save($entity); } ``` ※必要ならクエリパラメータがなければ保存しないとか入れておいたほうがいいかもしれませんね。