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

时间:2014-10-24 17:20:55

标签: php mysql laravel split eloquent

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

$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,我尝试了几件事(包括this post),但我无法让它工作。我需要这个来搜索和过滤帖子。

1 个答案:

答案 0 :(得分:12)

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

$posts = new Post;
$posts = $posts->where('...');
$posts = $posts->orWhere('...');
$posts = $posts->orderBy('...');
...
$posts = $posts->get();
但是,与其完成所有这些链接,您可以通过使用查询范围和一些结构良好的关系方法来简化操作。