【CakePHP3】APIを作ろうとしてエラーが出て混乱の極み…。
CakePHP3でAPIを作ろうと思ってちょっと苦労をしてしまいました・・。
クライアンからajaxでリクエストを送ると、なにかデータを返してくれるという簡単なものを作ろうとしたんですが、
CakePHPのエラーログに「Controller action can only return an instance of Response」と出てきて、どうしても処理に失敗していまいます・・。
↓公式ページの例文どうりに作ってるはずなんですが、どうもエラーの原因が分かりません・・。
https://book.cakephp.org/3.0/ja/views/json-and-xml-views.html
散々悩んだ挙句にとてもくだらない理由が判明しました・・。
以下のコードの「$array[$i]」の箇所ですが、$iが存在しない配列を参照していたためでした・・。
class HogegeController extends AppController { public function api() { ・・・ $hoge_id = $array[$i]; //結果を返却 $result['status'] = "ok"; $result['id"] = $hoge_id; $this->set(compact('result')); $this->set('_serialize', ['result']); }
なんだかすごいエラーログが出てきて「データビューの使い方を間違っているのか?」などと混乱してしまったんですが、結局その手前でしくじっていたということなんですね・・。
あ~くだらな。