Laravel 5.2 - 在路由绑定中访问经过身份验证的用户

时间:2016-07-29 13:19:08

标签: php laravel-5

是否可以在路由绑定中访问经过身份验证的用户。

Route::bind('account', function($account_id)
{
    dd(auth()->user()); // it's null :(

    $account = App\Models\Account::where('business_id', auth()->user()->business_id)
        ->where('account_id', $account_id)
        ->first()

    return !is_null($account) ? $account : App::abort(404);
});

我尝试在一些auth中间件中对路由绑定进行分组,没有骰子 - 这是一件事吗?启动是非常有用的,以避免在控制器中进行额外的验证。

帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

只要绑定位于Auth中间件内,您就可以使用Auth::user()

访问它
Route::bind('account', function($account_id)
{
    dd(Auth::user()); // Here is the change

    $account = App\Models\Account::where('business_id', Auth::user()->business_id)
        ->where('account_id', $account_id)
        ->first()

    return !is_null($account) ? $account : App::abort(404);
});

答案 1 :(得分:0)

您可以使用\Auth。这对我有用:

RouteServiceProvider:

public function boot(Router $router) {

    parent::boot($router);

    $router->bind('account', function () {
        dd(\Auth::user());
    });
}

routes.php文件

Route::get('account/{account}', function () {
    //test
});

打印用户对象