Лоравельский красноречивый запрос разбиения на несколько этапов

Я думаю, что название довольно запутанно, я постараюсь объяснить это как можно лучше. Допустим, у меня есть довольно большой запрос для поиска сообщений, примерно так:

$posts = Post::select('...') ->leftJoin('...') ->leftJoin('...') ->where('...') ->orWhere('...') ->orderBy('...') ->orderBy('...') ->groupBy('...') ->with('...') ->paginate(8); 

Как я могу разделить этот запрос? Например:

 $posts = Post::select('...') ->leftJoin('...') ->leftJoin('...') $posts->where('...') ->orWhere('...'); $posts->orderBy('...') ->orderBy('...') ->groupBy('...'); $posts->with('...') ->paginate(8); 

Я использовал Laravel 4.2, и я пробовал несколько вещей (включая этот пост ), но я не могу заставить его работать. Мне нужно это для поиска и фильтрации сообщений.

Начните с создания нового экземпляра вашей модели и установки ее в переменную, постройте свой запрос с помощью этой переменной, а затем закончите с get() :

 $posts = new Post; $posts = $posts->where('...'); $posts = $posts->orWhere('...'); $posts = $posts->orderBy('...'); ... $posts = $posts->get(); 

Однако, вместо того, чтобы выполнять всю эту цепочку, вы, возможно, можете немного упростить ситуацию, используя области запросов и некоторые хорошо структурированные методы отношений.