雄辩(从其他桌子到哪里?)

时间:2013-11-20 20:10:19

标签: laravel laravel-4

我有这个工作查询,它​​获取所有项目,与他们的国家,以及所有国家的大陆

$projects = Project::with('country.continent')->get();

现在我正在尝试做一个Where,仅通过以下查询从特定大陆获取结果

$projects = Project::where('continent.name', $sub)->with('country.continent')->get();

但这是失败的,它在Projects表中寻找'continent.name',但它在嵌套表中

有什么想法吗?谢谢!

1 个答案:

答案 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();
}

可能会这样做。