Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何通过与第一个集合相关的记录查找集合_Php_Laravel_Mongodb_Jenssegers Mongodb - Fatal编程技术网

Php 如何通过与第一个集合相关的记录查找集合

Php 如何通过与第一个集合相关的记录查找集合,php,laravel,mongodb,jenssegers-mongodb,Php,Laravel,Mongodb,Jenssegers Mongodb,我需要找到一组集合,其中搜索基于相关模型上的记录。 为了让您了解,我需要使用与我的搜索输入类似的公司名称获取用户 以下是我尝试过的: $users = App\User::with(['company' => function ($query) { $query->where('company_name', 'like', '%'.$searchInput.'%'); }])->paginate(10); 老实说,我花了好几个小时在这上面,但运气不好。我正在使用lar

我需要找到一组集合,其中搜索基于相关模型上的记录。 为了让您了解,我需要使用与我的搜索输入类似的公司名称获取用户

以下是我尝试过的:

$users = App\User::with(['company' => function ($query) {
    $query->where('company_name', 'like', '%'.$searchInput.'%');
}])->paginate(10);

老实说,我花了好几个小时在这上面,但运气不好。我正在使用laravel 5.8上的
Jensegers/mongodb

您应该在查询中添加
::whereHas()
,这将限制
公司
类似于搜索查询的查询结果

您还需要将
::with()
闭包更改为
::with('companys')

注意
使用($searchInput)


还要检查用户关系是否是
公司
而不是
公司

您是否尝试过
在哪里
?是的,我是这样做的,没有运气。请也发布相关的关系定义。另外,因为我无法传递任何变量,因为queryCompanies有许多用户,并且这些用户属于公司非常感谢您。这就是我要找的。文档中没有提到使用。我的第一次尝试是在哪里,但由于缺少变量,我得到了错误。Welcome@McMazalf。是的,非常了解
使用
,请标记为正确。无论如何,无需将公司更改为公司。再次感谢!
$users = App\User::whereHas('company', function ($query) use ($searchInput) {
    $query->where('company_name', 'like', '%'.$searchInput.'%');
})
->with('company')
->paginate(10);