CakePHP4でjson形式でレスポンスする方法
APIサーバを立てたりする際にレスポンス形式がjson形式にすることはよくあります。
今回はController側で簡単にjson形式をレスポンスする方法をまとめます。
まず、Controllerに次ののinitializeメソッドを追加します。
public function initialize(): void
{
parent::initialize();
$this->loadComponent('RequestHandler');
}
そして同じくControllerに以下のメソッドを追加します。
public function getSampleJson()
{
$this->loadModel('Samples'); //←Samplesというモデルを使ってsamplesテーブルのレコードを取得するとします。
$samples = $this->Samples->find();
$this->viewBuilder()->setClassName('Json');
$this->set('samples', $samples);
$this->set('_serialize', ['samples']);
}
シンプルなjson形式であれば、ビューテンプレートを作成せずに、
これだけでjsonをレスポンスすることができます。