Я думаю, что название довольно запутанное, я постараюсь объяснить это как можно лучше. Допустим, у меня есть довольно большой запрос для поиска сообщений, что-то вроде этого:
$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();
Однако вместо того, чтобы делать все эти цепочки, вы, возможно, сможете немного упростить процесс, используя области запросов и некоторые хорошо структурированные методы отношений.
Других решений пока нет …