LARAVEL 8 分页不存在,我需要 select 数据 region_id 并对其进行分页
LRAVEL 8 paginate does not exist, i need select data by region_id and paginate it
我在 Laravel 文档中找到了 paginate() 方法。但是,当我实施它时它不起作用。我收到分页不存在的错误。我知道分页可能只适用于 all(),但我只需要几列,而且我需要 select 按区域显示数据,就像在 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
方法中来稍微整理一下代码。
Tournament.php
public function region()
{
return $this->belongsTo(Region::class);
}
我在 Laravel 文档中找到了 paginate() 方法。但是,当我实施它时它不起作用。我收到分页不存在的错误。我知道分页可能只适用于 all(),但我只需要几列,而且我需要 select 按区域显示数据,就像在 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
方法中来稍微整理一下代码。
Tournament.php
public function region()
{
return $this->belongsTo(Region::class);
}