首页 > 解决方案 > Laravel 根据查询中的条件应用分页

问题描述

我正在使用 laravel eloquent 进行数据库操作。我创建了一个完成函数,如果变量具有值,如果找不到变量值,我想应用我的分页,那么它应该使用 laravel get()方法。这是我的代码

$query = DB::table('mytable')
->when($searchBy != null, function ($query) use ($searchBy) {
    return $query->where('mytable.id', '=', $searchBy)
        ->orWhere('orders.id', '=', $searchBy)
})
->orderBy('mytable.id', 'desc')
->paginate($recordsPerPage, ['*'], 'page', $pageNub);

如果变量> 0,我想添加分页$recordsPerPage,否则应该是使用get()方法

标签: laraveleloquentpagination

解决方案


您可以将构建器分配给一个变量并在此处使用某种类型的条件:

$query = DB::table('mytable')
    ->when($searchBy, function ($query, $searchBy) {
        return $query->where('mytable.id', '=', $searchBy)
            ->orWhere('orders.id', '=', $searchBy)
    })->orderBy('mytable.id', 'desc');

$result = ($recordsPerPage > 0) ?
    $query->paginate(...) :
    $query->get();

推荐阅读