Laravel以多个步骤雄辩地分割查询

Jas*_*onK 5 php mysql split laravel eloquent

我认为标题很混乱,我会尽量解释这个.可以说我对搜索帖子有很大的疑问,如下所示:

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

如何拆分此查询?例如:

$posts = Post::select('...')
           ->leftJoin('...')
           ->leftJoin('...')

$posts->where('...')
      ->orWhere('...');

$posts->orderBy('...')
      ->orderBy('...')
      ->groupBy('...');

$posts->with('...')
      ->paginate(8);
Run Code Online (Sandbox Code Playgroud)

我使用Laravel 4.2,我尝试了几件事(包括这篇文章),但我无法让它工作.我需要这个来搜索和过滤帖子.

dam*_*ani 15

首先创建模型的新实例并将其设置为变量,使用该变量构建查询,然后以get():

$posts = new Post;
$posts = $posts->where('...');
$posts = $posts->orWhere('...');
$posts = $posts->orderBy('...');
...
$posts = $posts->get();
Run Code Online (Sandbox Code Playgroud)

但是,不是通过所有这些链接,您可以使用查询范围和一些结构良好的关系方法来简化相当多的事情.