CakePHP3でformatResults()を用いて後処理をする
開発環境は、Windows 10 Pro(64bit) + PHP 7.2.12 + CakePHP 3.7.9。
findメソッドを用いて、containなどで関連もつなげて作り終わったクエリーに対して、formatResults()を用います。今回は、受け取った値に応じて、違う値を、新たに生成したカラムに入れたいと思います。
<?php /* $query変数に、クエリーを作り終わった後に・・・ */ $query->formatResults(function($results) use($flug){ return $results->map(function ($row) use($flug){ $row['flug'] = 0; if($flug === 'black'){ $row['flug'] = 1; } return $row; }); }); ?>
これによって、$flugがblackであれば、新たに生成したカラムflugの値は1、そうでなければ、0が入るようになっています。
■参考リンク
https://book.cakephp.org/3.0/ja/orm/query-builder.html#format-results