【问题标题】:Laravel apply pagination based on condition in queryLaravel 根据查询中的条件应用分页
【发布时间】:2021-02-06 23:12:27
【问题描述】:

我正在使用 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);

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

【问题讨论】:

  • 不,我没有海量数据,大约 400-500,你有什么解决方案吗?

标签: laravel eloquent pagination


【解决方案1】:

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

$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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-10
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    • 2018-04-28
    • 1970-01-01
    • 2012-07-13
    相关资源
    最近更新 更多