リレーション先のテーブルのカラムを検索したいケースはよくあると思いますが、この記事は、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
コメント