Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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
使用子表记录的Laravel雄辩关系搜索_Laravel_Laravel 5_Laravel Eloquent - Fatal编程技术网

使用子表记录的Laravel雄辩关系搜索

使用子表记录的Laravel雄辩关系搜索,laravel,laravel-5,laravel-eloquent,Laravel,Laravel 5,Laravel Eloquent,问题: 我只想要关系记录[user]不为空的记录 就我而言,我只想要第一张唱片。其中,用户不为空 结果: 用户表 身份证 名字 电子邮件 项目选项卡 身份证 头衔 用户id[外键] 我的代码是这样的 $projects = App\Project::with(['user' => function ($user) { $user->where('name', '=', 'Ketan'); }])

问题:

我只想要关系记录[
user
]不为空的记录

就我而言,我只想要第一张唱片。其中,
用户
不为空

结果:

用户表

  • 身份证
  • 名字
  • 电子邮件
项目选项卡

  • 身份证
  • 头衔
  • 用户id
    [外键]
我的代码是这样的

$projects = App\Project::with(['user' => function ($user) {
                    $user->where('name', '=', 'Ketan');
                }])
                ->get();

foreach ($projects as $project) {
    echo $project->title.' - '.$project;
}
我的结果是这样的: 您可以尝试:

$projects = App\Project::with(['user' => function ($user) {
                    $user->where('name', '=', 'Ketan');
                }])
                ->get();

foreach ($projects as $project) {
    if($project->user != null){
        echo $project->title.' - '.$project;
    }
}

我得到了我问题的答案

$projects = App\Project::whereHas(['user' => function ($user) {          <--Change Here
                    $user->where('name', '=', 'Ketan');
                }])
                ->get();
$projects=App\Project::whereHas(['user'=>函数($user){where('name','=','Ketan');
}])
->get();
使用“where has”将“where has”更改为“where has”


通过这个解决方案,我只得到了那些用户(关系记录)不为空的项目记录。

下面的代码正在工作

$projects = App\Project::whereHas('user', function ($user) {
              $user->where('name', '=', 'Ketan');
           }])->get();
将“with”改为“whereHas”,注意whereHas不接受数组作为参数
作为参考

您是否只需要获取一个项目(任何项目),其中用户不为
null
?是,@AlexeyMezenin。我想在任何项目中的用户不是空的。每当我对结果应用这个条件时。我在第一页找到了6个结果,在第二页找到了5个结果,在第三页找到了8个结果,依此类推。。。。。所以,我想对查询而不是结果应用这个条件。这不是一个好的解决方案。它将从数据库中加载每个项目,然后让您循环并仅与用户一起打印这些项目。