我找到了数据库中下一个和上一个记录链接的解决方案。但是解决方案只适用于下一个记录。当我按回链接时,它显示第一个记录。你可以帮我找到一个显示最大数量的解决方案记录?
//Model file
public static function findNext($id)
{
return static::where('id','>',$id)->first();
}
public static function findPrevious($id)
{
return static::where('id','<',$id)->first();
}
//Controller file
public function show($id)
{
$c = C::findOrFail($id);
$nextUser = C::findNext($id);
$previousUser = C::findPrevious($id);
return view('c.show', compact('c',$c))->with('nextUser',$nextUser)-
>with('previousUser',$previousUser);
}
//View file
@if($previousUser)
<a href="{{ URL::to( 'c/show/' . $previousUser->id . '/previous')
}}">Previous</a> |
@endif
@if($nextUser)
<a href="{{ URL::to( 'c/show/' . $nextUser->id . '/next') }}">Next</a>
@endif
//Route file
Route::get('c/show/{id}', 'CController@show');
Route::get('c/show/{user}/next',function($id){
$nextUser=C::findNext($id);
return Redirect::to('c/show/'.$id);
});
Route::get('c/show/{user}/previous',function($id){
$nextUser=C::findPrevious($id);
return Redirect::to('c/show/'.$id);
});
尝试使用orderBy()
方法和下降方向:
public static function findPrevious($id)
{
return static::where('id', '<', $id)
->orderBy('id', 'desc')
->first();
}