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