我知道现在为每条路线分配了web
中间件组。但有人可以告诉我如何删除如果为specefic路线?我试过了:
class HomeController extends Controller{
public function __construct(){
$this->middleware('web',['except'=>[
'index',
]]);
}
}
它没有用。
答案 0 :(得分:1)
Web中间件现在应用于routes.php中的所有路由。这发生在RouteServiceProvider映射函数中。
如果你有一个不应该使用网络中间件的api,你可以使用这样的东西
public function map(Router $router)
{
$this->mapWebRoutes($router);
$this->mapApiRoutes($router);
}
protected function mapWebRoutes(Router $router)
{
$router->group([
'namespace' => $this->namespace, 'middleware' => 'web',
], function ($router) {
require app_path('Http/routes.php');
});
}
protected function mapApiRoutes(Router $router)
{
$router->group([
'namespace' => $this->namespace, 'middleware' => 'api',
], function ($router) {
require app_path('Http/routes-api.php');
});
}
现在routes.php中的每个路由都有web中间件和routes-api.php中的所有内容api中间件