【Laravel-admin】リレーション先のカラムを検索できるようにする

Larave-admin

リレーション先のテーブルのカラムを検索したいケースはよくあると思いますが、この記事は、Laravel adminでquickSearchを使って実装した方法です。

例えとして、

・postsテーブルとcommentsテーブルがある
・laravel-adminではpostの一覧画面(Grid)を表示していて
・postsテーブルのidカラムと、リレーション先のcommentsテーブルのcontentを検索できるようにした

とします。

このように記述しました。

$grid->quickSearch(function ($model, $search) {
        $model->join('comments', 'posts.comment_id', '=', 'comments.id')
             ->where('posts.id', 'like', "%{$search}%")
             ->orWhere('content', 'like', "%{$search}%");//ここがcommentsのテーブルのカラムとします
});

ドキュメントだと、こちらの箇所となります。

https://laravel-admin.org/docs/en/model-grid-quick-search#Custom%20Search

コメント

タイトルとURLをコピーしました