为Laravel中的路由分配中间件

为Laravel中的路由分配中间件,laravel,authentication,routes,middleware,Laravel,Authentication,Routes,Middleware,我希望只允许经过身份验证的用户访问我的应用程序中的某个页面。在阅读了文档之后,我发现这可以通过中间件来完成。我将auth中间件分配给我想要保护的路由,但是即使我没有经过身份验证,我仍然可以访问它 Route::get("add","Clubs@add",['middleware' => 'auth', function () {}]); 我想你在寻找这种语法 Route::get('profile', [ 'middleware' => 'auth', 'uses'

我希望只允许经过身份验证的用户访问我的应用程序中的某个页面。在阅读了文档之后,我发现这可以通过中间件来完成。我将auth中间件分配给我想要保护的路由,但是即使我没有经过身份验证,我仍然可以访问它

Route::get("add","Clubs@add",['middleware' => 'auth', function () {}]);

我想你在寻找这种语法

Route::get('profile', [
    'middleware' => 'auth',
    'uses' => 'ProfileController@show'
]);
所以对于你的情况,应该是这样的

Route::get('add', [
    'middleware' => 'auth',
    'uses' => 'Clubs@add'
]);

你读过这一页了吗?还是不行。通过从控制器的构造函数调用中间件,我成功地解决了这个问题。但是,即使我在路线中分配它,它也应该有效。是的,应该有效。你在运行什么版本的Laravel?我想不出我发布的语法不起作用的任何原因。这可能是一个愚蠢的问题,因为您似乎知道自己在做什么,但您是否替换了我发布的示例中使用的路由路径和控制器,使其看起来像我刚才添加的第二个示例?