如果我希望访客,经过身份验证的用户以及其他所有人都可以访问该路由,请使用哪个中间件?

时间:2018-03-02 03:02:18

标签: php laravel

起初我决定按照下面给出的代码组织我的路线。但是,我很快就意识到,一旦我登录,我就无法访问使用中间件访客的组中的路由。这是否意味着我希望任何人都可以访问这些路由,无论他们是否重新访问登录或不登录不应该在任何中间件组中?

<?php

Route::group(['middleware' => ['web']], function(){

    Route::group(['middleware' => ['guest']], function(){
        Route::get('/', 'PagesController@index')->name('home');
        Route::get('/image/{id}', 'PagesController@specificImage')->name('specificImage');
        Route::get('/contact', 'PagesController@contact')->name('contact');
        Route::get('/tags', 'PagesController@tags')->name('tags');
        Route::get('/tags/{tagName}', 'PagesController@specificTag')->name('specificTag');
        Route::get('/albums', 'PagesController@albums')->name('albums');
        Route::get('/albums/{albumId}/{albumName}', 'PagesController@specificAlbum')->name('specificAlbum');
        Route::post('/signup', 'UsersController@signUp')->name('signup');
        Route::post('/signin', 'UsersController@signIn')->name('signin');
        Route::post('/sendmail', 'UsersController@sendMail')->name('sendmail');
    });

    Route::group(['middleware' => ['auth']], function(){
        Route::get('/upload', 'PagesController@upload')->name('upload');
        Route::get('/logout', 'UsersController@logOut')->name('logout');
        Route::get('/imageDelete/{imageId}', 'ImagesController@deleteImage')->name('deleteImage');
        Route::get('/deleteTag/{tagId}', 'TagsController@deleteTag')->name('deleteTag');
        Route::post('/imageUpload', 'ImagesController@uploadImage')->name('imageUpload');
        Route::post('/albumUpload', 'AlbumsController@uploadAlbum')->name('albumUpload');
        Route::post('/createTag', 'TagsController@createTag')->name('createTag');
    });
});

3 个答案:

答案 0 :(得分:1)

  

从路由组中删除auth中间件

答案 1 :(得分:0)

正确!摆脱客户中间件,你不需要它。

答案 2 :(得分:0)

只是不要使用任何中间件。