如何在两个不同的表中搜索?

时间:2016-10-25 12:53:48

标签: php mysql laravel union

以下是我当前的疑问:

$q = $request->q;
-- first table
$n_arr = news::where('title','like',$q)->orWhere('description','like',$q)->get();
-- second table
$p_arr = productions::where('title','like',$q)->orWhere('description','like',$q)->get();

如你所见,目前我通过两个不同的查询来做到这一点。但现在我需要使用->paginate(),所以我需要一个查询来分页所有结果。我需要类似union子句的东西。

换句话说,我需要结合上面两个查询的结果。

我怎样才能在Laravel中做到这一点?

1 个答案:

答案 0 :(得分:0)

这样做的一种方法是create pagination manually

另一种方法是在两个查询中使用skip()take()方法来获取当前页面的结果。

$n_arr = news::where('title','like',$q)->orWhere('description','like',$q)->->skip($page * $perPage)->take($perPage)get();
$p_arr = productions::where('title','like',$q)->orWhere('description','like',$q)->skip($page * $perPage)->take($perPage)->get();