もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

laravelのResourceCollectionで追加データを送りたい

はじめに

こんばんは。

めちゃ簡単な備忘録です。

ResourceCollectionで data meta 以外に新たにデータを追加したい・または 元のデータに更にデータを追加したい場合の対応です。

readouble.com

本番

簡単な話なんですが 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みたいに サービスコンテナで帰ってくるクラスを変更できたらいいのに。。

需要ないからやってないのかな。

終わりに

簡単でしたが、ちょっと中まで探ったので、備忘録でした。

現場からは以上です。