是否可以在路由绑定中访问经过身份验证的用户。
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中间件中对路由绑定进行分组,没有骰子 - 这是一件事吗?启动是非常有用的,以避免在控制器中进行额外的验证。
帮助表示赞赏。
答案 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
});
打印用户对象