Laravel красноречивый разделенный запрос в несколько шагов

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

$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, и я попробовал несколько вещей (в том числе эта почта), но я не могу заставить его работать. Мне это нужно для поиска и фильтрации сообщений.

3

Решение

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

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

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

12

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]