首页 > 解决方案 > 如何从 laravel 中的多个表中搜索?

问题描述

如何使用 laravel eloquent 从多个表中搜索。以下是我的查询。

$data= User::where('id',$search_str)
            ->orWhere('name', 'LIKE', "%{$search_str}%")
            ->with('usersecond:id,name,email')->get();

如果我搜索一些东西,我会从用户表中得到结果。如何在此查询中从 usersecond 表中获取结果?

标签: phpmysqllaravel

解决方案


使用whereHas()功能

$data = User::where('id', $search_str)
    ->orWhere('name', 'LIKE', "%{$search_str}%")
    ->with('usersecond:id,name,email')
    ->orWhereHas('usersecond', function ($q) use ($search_str) {
        $q->where('name', 'LIKE', "%{$search_str}%");
    })->get();

参考链接https://laravel.com/docs/7.x/eloquent-relationships#querying-relationship-existence


推荐阅读