2016-01-12 4 views
0

У меня есть запрос:Как использовать ':: whereHas()' как ограничение для запроса ':: with() при использовании Eloquent?

Posts::whereHas('comments', function($query){ 
      $query->where('name', 'like', 'asd'); 
     })->with('comments')->get(); 

Он возвращает все сообщения, которые имеют комментарии, которые имеют название, как «ASD» со всеми комментариями этих сообщений. Могу ли я использовать указанное ограничение в ':: whereHas' для метода 'with', поэтому он не будет возвращать все комментарии, а только те, которые соответствуют требованиям? Или мне нужно дублировать запрос?

ответ

3

Вы можете создать что-то вроде этого запроса, почти без дубликата :)

$callback = function($query) { 
    $query->where('name', 'like', 'asd'); 
} 
Posts::whereHas('comments', $callback)->with(['comments' => $callback])->get(); 

Или, вы можете сделать, как в этом посте Laravel - is there a way to combine whereHas and with

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