我如何通过与第一个集合相关的记录找到集合
How do i find collection through a record related to the first collection
我需要找到一组集合,其中搜索基于相关模型上的记录。
为了让您了解,我需要让用户使用与我的搜索输入相似的公司名称。
这是我试过的方法:
$users = App\User::with(['company' => function ($query) {
$query->where('company_name', 'like', '%'.$searchInput.'%');
}])->paginate(10);
老实说,我为此花了好几个小时,但没有成功。我在 laravel 5.8 上使用 jenseggers/mongodb
。
您应该将 ::whereHas()
添加到您的查询中,这将限制查询结果,其中 company
类似于搜索查询。
您还需要将 ::with()
闭包更改为 ::with('companies')
。
$users = App\User::whereHas('company', function ($query) use ($searchInput) {
$query->where('company_name', 'like', '%'.$searchInput.'%');
})
->with('company')
->paginate(10);
注意 use ($searchInput)
。
同时检查用户关系是否为 companies
而不是 company
。
我需要找到一组集合,其中搜索基于相关模型上的记录。 为了让您了解,我需要让用户使用与我的搜索输入相似的公司名称。
这是我试过的方法:
$users = App\User::with(['company' => function ($query) {
$query->where('company_name', 'like', '%'.$searchInput.'%');
}])->paginate(10);
老实说,我为此花了好几个小时,但没有成功。我在 laravel 5.8 上使用 jenseggers/mongodb
。
您应该将 ::whereHas()
添加到您的查询中,这将限制查询结果,其中 company
类似于搜索查询。
您还需要将 ::with()
闭包更改为 ::with('companies')
。
$users = App\User::whereHas('company', function ($query) use ($searchInput) {
$query->where('company_name', 'like', '%'.$searchInput.'%');
})
->with('company')
->paginate(10);
注意 use ($searchInput)
。
同时检查用户关系是否为 companies
而不是 company
。