php - 如何为查询添加分页?
问题描述
在我只是做一个选择一些字段和一些条件的查询之前。这行代码给了我正确的结果。
public function index()
{
// Get links
$links = Link::select('id', 'url', 'short_url', 'counter', 'expired_on')
->orderBy('id', 'desc')
->where('delete_flg', 0)
->get();
// Return data
return view('dashboard')->with(
array(
'links' => json_decode($links),
'current_datetime' => Carbon::now()
)
);
}
现在我想对上面的行实现分页。
$links = Link::select('id', 'url', 'short_url', 'counter', 'expired_on')
->orderBy('id', 'desc')
->where('delete_flg', 0)
->get()->paginate(2);
当我尝试在最后使用 paginate(2) 时出现错误:
Method Illuminate\Database\Eloquent\Collection::paginate does not exist.
所以从其他一些教程中我尝试不使用 ->get() 然后分页然后我得到这样的错误。
count(): Parameter must be an array or an object that implements Countable
我对如何实现分页感到困惑。
有人可以帮我吗?
解决方案
您可以简单地执行以下操作:
$links = Link::select('id', 'url', 'short_url', 'counter', 'expired_on')
->orderBy('id', 'desc')
->where('delete_flg', 0)
->paginate(2);
分页已经像一个->get()
这就是您将数据/集合返回到您的视图的方式:
// return data
return view('dashboard', compact('links'));
紧凑型的替代品:
return view('dashboard')->with([
'links' => $links
]);
然后在您看来,您可以对数据做任何您想做的事情:
@foreach($links as $link)
<p>{{ link }}</p>
@endforeach
推荐阅读
- java - Appium在两个设备问题上并行执行
- google-apps-script - 在谷歌表格中使用 setConditionalFormatRules() 突出显示一行
- python - 像 COCO 一样自动创建图像蒙版
- python - conv2D 中的填充
- sendkeys - 特殊键 Ctrl+A+DEL 在 BluePrism 中不起作用
- python - 在 PyTorch 中实现完全连接层的 dropout
- php - PHP MongoDB\..\ServerException 无法使用数据库“模型”发送“getMore”命令:套接字错误或超时
- unity3d - 既然不管理内存,Unity WebGL heap总是必然会崩溃?
- python - Pandas 如何对每一行中的连接字符串进行排序?
- macos - 如何验证音频数据是否有效?