Laravel:通过Middleware指定Auth :: guard()?

时间:2018-02-08 08:23:42

标签: php laravel laravel-5

在我的应用程序中,我有一个单独的管理员守卫。

我创建了一个这样的辅助函数:

function admin_auth()
{
        return \Illuminate\Support\Facades\Auth::guard(config('admin.auth.guard'));
} 

我在我的控制器和刀片文件中使用此方法,例如:

if (admin_auth()->attempt($credentials, $request->has('remember'))) {
    return $this->sendLoginResponse($request);
}

或者像这样

<p>{{ admin_auth()->user()->email }}</p>

我的管理信息中心中的所有控制器和刀片文件均可在路径

下访问
Route::group(['prefix' => 'admin'], function () {
 //...
}

我的问题是:是否有可能当且仅当我在路由中调用前缀为/admin的控制器或刀片文件时,函数Auth()才会调用admin_auth()?< / p>

这样我就可以将代码简化为

<p>{{ Auth::user()->email }}</p>

我在docs中找不到,但我想也许这可以通过中间件来实现?

1 个答案:

答案 0 :(得分:0)

或许你可以只在路线中添加一个中间件,这样只有管理员可以访问该页面......?

    Route::group(['middleware' => ['admin'], ['prefix' => 'admin']], function () {
    //
});