やったこと

webサービスを作るときに考えたことを垂れ流します

【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']);
    }

なんだかすごいエラーログが出てきて「データビューの使い方を間違っているのか?」などと混乱してしまったんですが、結局その手前でしくじっていたということなんですね・・。

あ~くだらな。