Laravel获取或分页子查询

时间:2015-05-26 09:07:29

标签: php laravel pagination

我有一个巨大的查询,有时需要我使用paginate(),其他时候需要我使用get()。有没有办法在查询结束时创建某种if语句,以确定使用哪一个?有点像子查询。

我提出的其他解决方案是将分页数设置为一个非常高的数字以模仿get(),但如果可以使用,我更倾向于以另一种方式执行此操作某种if语句,但我不确定如何弄清楚。

由于

1 个答案:

答案 0 :(得分:2)

你可以提出条件。

e.g。假设你的数据库代码是这样的:

$data = DB::table('test')->get(); // or paginate

然后

$temp = DB::table('test');

if(condition)
{
    return $temp->paginate();
} else {
    return $temp->get();
}

如果你想检查什么类型的数据,它将返回(在控制器中

if($data instanceof \Illuminate\Pagination\LengthAwarePaginator)
{
    //it is a paginator object. write the code accordingly
} else {
    // It is returning array.
}

虽然你应该进一步验证看看会发生什么。

另一条路线:

您可以在paginator对象上调用items()方法,以获取参考该特定页面的结果。

e.g。如果$data是一个paginator对象,那么,

dd($data->items());

将项目打印为数组。 (items()将结果集作为数组返回)