我创建了一个中间件,让我们说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);
}
}
我想要做的是每次使用中间件&#39; auth_admin&#39;,然后进入&#39; auth_admin&#39;中间件,我希望它能够执行&#39; auth&#39;中间件首先。
答案 0 :(得分:1)
您可以尝试使用依赖注入,在构造函数中,您应该放置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标准,将命名空间放在下一行,就像我在示例中所做的那样。
答案 1 :(得分:0)
我不确定你为什么要那样做。但是在Laravel中,我认为你可以像下面这样配置以使其工作:
function(x) { // x = 1
return function() {
console.log(x); // x = 1
};
}(1)