拉拉维尔上一张和下一张唱片

2022-08-30 11:04:57

我正在尝试创建一个页面,我可以在其中查看数据库中的所有人并对他们进行编辑。我制作了一个表格,其中我填写了某些字段数据库中的数据。

我想通过“下一个”和“上一个”按钮浏览它们。

为了生成下一步,我必须采用大于当前ID的ID来加载下一个配置文件。

为了生成上一步,我必须将ID小于当前ID以加载上一个配置文件。

我的路线:

Route::get('users/{id}','UserController@show');

控制器:

public function show($id)
    {

        $input = User::find($id);

        // If a user clicks next this one should be executed.
        $input = User::where('id', '>', $id)->firstOrFail();



        echo '<pre>';

        dd($input);

        echo '</pre>';

        return View::make('hello')->with('input', $input);
    }

视图:按钮:

<a href="{{ URL::to( 'users/' . $input->id ) }}">Next</a>

获取当前 ID 并递增它的最佳方法是什么?


答案 1

以下是您从@ridecar2链接派生的更新的控制器和视图文件,

控制器:

public function show($id)
{

    // get the current user
    $user = User::find($id);

    // get previous user id
    $previous = User::where('id', '<', $user->id)->max('id');

    // get next user id
    $next = User::where('id', '>', $user->id)->min('id');

    return View::make('users.show')->with('previous', $previous)->with('next', $next);
}

视图:

<a href="{{ URL::to( 'users/' . $previous ) }}">Previous</a>
<a href="{{ URL::to( 'users/' . $next ) }}">Next</a>

答案 2
// in your model file
public function next(){
    // get next user
    return User::where('id', '>', $this->id)->orderBy('id','asc')->first();

}
public  function previous(){
    // get previous  user
    return User::where('id', '<', $this->id)->orderBy('id','desc')->first();

}
// in your controller file
$user = User::find(5); 
// a clean object that can be used anywhere
$user->next();
$user->previous();

推荐