質問: お世話になります。 cakephp3 では、bakeと呼ばれるコマンドがあり、テーブルを基準に、ビュー、コントローラー、モデルのファイルを自動生成してくれる機能があります。 とても便利なのですが、自動でいろいろな関数が用意され、自分でどのように扱えばわかりません。 cakephp3 の入門や動画講座で、bake生成後のコードにはあまり触れる解説がないので、以下のコードの意味が分かる人がいらっしゃいましたら、なるべく詳しくご教授頂ければと思います。。 AppController に自動生成されたものだと思います。 public function beforeRender(Event $event) { if (!array_key_exists('_serialize', $this->viewVars) && in_array($this->response->type(), ['application/json', 'application/xml']) ) { $this->set('_serialize', true); } }
回答: 自分も公式な説明をみたことがないので推測ですが... これは各actionメソッド内で$this->set('_serialize', [xxxx]);で_serializeが設定されていない場合に、そのactionにjsonやxmlをリクエストされた場合エラーになるのを防ぐためのコードだと思います。 $this->set('_serialize', true);と設定すると、$this->set()で設定したすべてのレスポンスで返すことになります。