问题:
我只想要那些关系记录[user
]不为空的记录。
在我的情况下我只想要第一条记录。其中user
不为空
结果:
用户表
项目标签
[foreign key]
我的代码就像这样
$projects = App\Project::with(['user' => function ($user) {
$user->where('name', '=', 'Ketan');
}])
->get();
foreach ($projects as $project) {
echo $project->title.' - '.$project;
}
我的结果是这样的:
答案 0 :(得分:1)
以下代码正在运作
$projects = App\Project::whereHas('user', function ($user) {
$user->where('name', '=', 'Ketan');
}])->get();
使用'更改'到' whereHas'并注意whereHas不接受数组作为参数 供参考Laracasts Link
答案 1 :(得分:-1)
您可以尝试:
$projects = App\Project::with(['user' => function ($user) {
$user->where('name', '=', 'Ketan');
}])
->get();
foreach ($projects as $project) {
if($project->user != null){
echo $project->title.' - '.$project;
}
}
答案 2 :(得分:-1)
我解决了我的问题
$projects = App\Project::whereHas(['user' => function ($user) { <--Change Here
$user->where('name', '=', 'Ketan');
}])
->get();
仅更改&#39;用&#39;到&#39; whereHas&#39;
通过这个解决方案,我只得到那些用户(关系记录)不为空的项目记录。