我有这个工作查询,它获取所有项目,与他们的国家,以及所有国家的大陆
$projects = Project::with('country.continent')->get();
现在我正在尝试做一个Where,仅通过以下查询从特定大陆获取结果
$projects = Project::where('continent.name', $sub)->with('country.continent')->get();
但这是失败的,它在Projects表中寻找'continent.name',但它在嵌套表中
有什么想法吗?谢谢!
答案 0 :(得分:2)
来自Laravel docs:
Eager Load Constraints
有时您可能希望加载关系,但也要指定 急切负荷的条件。这是一个例子:
$users = User::with(array('posts' => function($query) { $query->where('title', 'like', '%first%'); }))->get();
在这个例子中,我们渴望加载用户的帖子,但仅限于 帖子的标题栏包含“第一个”一词。
所以[警告:未经测试的代码]
$projects = Project::with(array('country.continent') => function($query) use ($sub){
$query->where('name',$sub);}))->get();
}
可能会这样做。