我已经创建了一个中间件,比如AuthenticateAdmin,在Kernel.php中我添加了以下代码:
'auth_admin' => \App\Http\Middleware\AuthenticateAdmin::class,在我的路线中,我有这样的代码:
Route::group(['middleware' => 'auth_admin'], function () {
// Admin routes here
});在我的AuthenticateAdmin.php中,我有这样的代码“
<?php namespace App\Http\Middleware;
use Auth;
use Closure;
use Illuminate\Contracts\Auth\Guard;
class AuthenticateAdmin {
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
// Perform action here
return $next($request);
}
}我想做的是每次使用中间件'auth_admin',在进入'auth_admin‘中间件之前,我希望它首先执行'auth’中间件。
发布于 2015-07-22 06:00:30
您可以尝试使用依赖项注入,在构造函数中,应该放置auth中间件,然后执行auth_admin的操作。
<?php
namespace App\Http\Middleware;
use Auth;
use Closure;
use Illuminate\Contracts\Auth\Guard;
class AuthenticateAdmin {
/**
* Create a new authentication controller instance.
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
// Perform action here
return $next($request);
}
}还有一件事,请记住遵循PSR-2标准,将名称空间放在下一行,就像我在示例中所做的那样。
发布于 2015-07-22 04:19:38
我不知道你为什么要这么做。但在Laravel中,我认为您可以像下面这样配置以使其工作:
Route::group(['middleware' => ['auth','auth_admin']], function () {
// Admin routes here
});https://stackoverflow.com/questions/31553032
复制相似问题