【发布时间】:2015-10-22 00:33:40
【问题描述】:
我在一个组内使用中间件时遇到了一点问题,该组内部有一个中间件,如下所示:
Route::group(['prefix' => '{lang?}','middleware'=>'language'], function() {
Route::get('/', 'HomeController@index');
Route::get('/login','AuthController@login');
Route::post('/login','AuthController@do_login');
Route::get('/logout','AuthController@logout');
Route::group(['prefix' => 'checkout','middleware'=>'authentication'], function () {
Route::get('/', "CheckoutController@step1");
});
});
还有我当前的 AuthenticationMiddleware
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Contracts\Routing\Middleware;
use Session;
use App;
use Redirect;
class AuthenticationMiddleware{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
die("inside");
if(!User::check())
{
return Redirect::to("/login");
}
else
{
return $next($request);
}
}
}
编辑: 因此,他在 /checkout 范围之外进入了最后一个中间件事件。我怎样才能避免它? 谢谢大家
【问题讨论】:
-
你有什么问题?有什么错误吗?
-
抱歉,更新了描述
-
你能把你的语言中间件和你的
app/Http/Kernel.php也包括进来吗? -
你能举一个你想要获取的网址的例子吗?
-
我在 protected $middleware = [ .... 'App\Http\Middleware\AuthenticationMiddleware' 和 protected $routeMiddleware = [... 'authentication' => 'App\ Http\Middleware\AuthenticationMiddleware' ];
标签: laravel laravel-5 laravel-routing