6

我正在尝试研究如何测试 Laravel 4 中的登录用户是否可以访问正确的用户帐户。

目前这是我的 routes.php 文件中的内容。

Route::get('user/{id}', array('before' => 'auth', function(){
    // logged in user
    // but can visit any account!!
}));

如果这是当前登录的用户 ID,我将如何将其限制为这样 user/1 只能看到配置文件?

Auth::user()->id

返回要测试的登录 id,但我不知道如何编写一个过滤器来检查它是否等于 url 中的 {id}。

请帮忙!谢谢。

4

1 回答 1

6

通过 Laravel irc 频道获得了一些帮助。

这就是我一直以来的方式。

Route::filter('user', function($route, $request)
{
    if( $request->segment(2) != Auth::user()->id)
    {
        return Redirect::to('/login');
    }
});

然后在我的路线上做。

Route::get('user/{id}', array('before' => 'auth|user', 'uses' => 'UsersController@index'));
于 2013-04-01T04:53:26.127 回答