php - LRAVEL 8 分页不存在,我需要按 region_id 选择数据并对其进行分页
问题描述
我在 Laravel 文档中找到了 paginate() 方法。但是,当我实施它时它不起作用。我收到分页不存在的错误。我知道分页可能只适用于 all(),但我只需要几列,并且我需要像在 show 方法中那样按区域选择数据。如何重写索引和显示方法以使其工作?
指数法
public function index()
{
$tournaments = Tournament::latest()
->get(['title', 'city', 'date_starter_at', 'slug'])->paginate(12);
$regions = Region::all();
}
显示方法
public function show(Tournament $tournament)
{
return view('tournaments.show', [ 'tournament' => $tournament,
'regions' => Region::where("id", "=", $tournament->region_id)->get(),
]);
return view('tournaments.index', [
'regions' => $regions,
'tournaments' => $tournaments,
]);
}
解决方案
您正在对集合调用分页。您应该在查询构建器实例上调用它。
public function index()
{
$tournaments = Tournament::select(['title', 'city', 'date_starter_at', 'slug'])
->latest()
->paginate(12);
$regions = Region::all();
return view('tournaments.index', compact('tournaments', 'regions');
}
public function show(Tournament $tournament)
{
$tournament->load('region');
return view('tournaments.show', compact('tournament'));
}
Tournament
您还可以通过添加关系并将其加载到方法中来稍微整理一下代码show
。
锦标赛.php
public function region()
{
return $this->belongsTo(Region::class);
}
推荐阅读
- flutter - If 语句更改 QuerySnapshot Flutter 中的图标颜色
- powershell - 如何在 Windows 上正确部署 PowerShell core Zip
- go - 在 go 中列出服务
- postgresql - 您可以在一个步骤中使用在另一个表(记录)中找到的数据在 sequelize 中创建新记录吗?
- yarn-workspaces - 将 monorepo 包放在包文件夹下是一种约定,还是 yarn 工作区期望这样?
- java - 客户端错误,我猜与 utf-8 或与表单标签有关的东西。但是解决不了
- python - Flask 会停止检测变化吗?
- authentication - 使用 Auth0 而不是 PassportJS 的好处?
- java - java图形 - 文本颜色不正确呈现
- javascript - 在 API 调用中无法访问图像 URL