はじめに
こんばんは。
めちゃ簡単な備忘録です。
ResourceCollectionで data meta 以外に新たにデータを追加したい・または 元のデータに更にデータを追加したい場合の対応です。
本番
簡単な話なんですが additional() を使えばOKです。
以下みたいな感じ。
$resources = new ResourceCollection($collection);
$resources->additional([
'aaaa' => 'AAAA',
'bbbb' => 'BBBB',
'cccc' => 'CCCC',
]);
配列よりクラスを渡せたらもっと便利かなぁと思って、探ってみたのですが、 additional データをマージする ResourceResponse クラスを JsonResource クラスで直接newしてるので、やるにはかなり大変そうでした。
public function toResponse($request)
{
return (new ResourceResponse($this))->toResponse($request);
}
LengthAwarePaginatorみたいに サービスコンテナで帰ってくるクラスを変更できたらいいのに。。
需要ないからやってないのかな。
終わりに
簡単でしたが、ちょっと中まで探ったので、備忘録でした。
現場からは以上です。