我正在尝试处理2个中间件,然后再将其路由到控制器。 Laravel不会在下面的代码中给我一个错误,但它只处理第一个中间件' CheckReferer '并且不会处理第二个中间件' CheckCart '。即使您更改了序列,它也会处理第一个中间件(例如,' CheckCart',' CheckReferer')。
web.php
Route::prefix($language)->middleware('CheckReferer', 'CheckCart')->group(function() {
Route::get('/', 'HomeController@getIndex')->name('home');
});
CheckReferer.php(中间件)
class CheckReferer
{
public function handle($request, Closure $next)
{
$Referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null;
if($Referer != null) {
$url_parsed = parse_url($Referer);
if ($url_parsed['host'] == 'www.example.com') {
$Referer = true;
Session::put('Referer', $Referer);
}
}
return $next($request);
}
}
CheckCart.php(中间件)
class CheckCart
{
public function handle(Request $request, Closure $next)
{
$oldCart = Session::has('Cart') ? Session::get('Cart') : null;
return $next($request);
}
}
答案 0 :(得分:0)
将它们作为数组传递......
Route::prefix($language)->middleware(['CheckReferer', 'CheckCart'])->group(function() {
Route::get('/', 'HomeController@getIndex')->name('home');
});