2013-11-20 7 views
1

У меня есть этот рабочий запрос, который получает все проекты, с их странами, и все континенты для странEloquent (где из другой таблицы?)

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

Теперь я пытаюсь сделать, где только получить результаты от определенного континента со следующим запросом

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

но это не удается, он ищет «continent.name» в таблице проектов, но это вложенная таблица

Есть идеи? Благодаря!

ответ

2

Из Laravel docs:

Нетерпеливых нагрузки Ограничения

Иногда вы можете нетерпеливые нагрузки отношений, но и указать условие для нетерпеливога нагрузки. Вот пример:

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

может это сделать.

Смежные вопросы