laravel - 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()
方法
解决方案
您可以将构建器分配给一个变量并在此处使用某种类型的条件:
$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();
推荐阅读
- c# - 如何让敌方角色停止盘旋玩家?
- java - 当我更改条目的键时,Java PriorityQueue 是否会重新排列?
- python - 使用python将Twitter的json按字段插入MongoDB
- spring-mvc - 使用 Thymeleaf 转义 XML
- python - Tensorflow:NotFoundError:没有这样的文件或目录
- arrays - 访问数组 Laravel
- elixir - Elixir:使用 Absinthe 查询图形数据库 Dgraph。GraphQL 到 GraphQL+ 的映射
- bash - xargs 如何格式化 $'\n' 的输入?
- java - mysql级别选择菜单的java返回变量
- c++ - boost::exists 符号链接不取消引用