Search code examples
laravelroutesmiddlewareprefix

Laravel routing groups


I have a question about routing groups. I have two types of users and I can not use the role system. Following the laracast email verification video I was able to get a new type of user to work. So I can login and register no problem. However when I have both types of users routes going it starts rejecting logins and such.

I even tried separating the admin user routes and putting the artist user routes on a different php document but still will not allow two types of logins or to view the proper dashboard.

I have tried using namespace inside the group, prefix, and tried middleware to no avail.

Here's the routing code.

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

Route::get('/', function () {
    return view('welcome');
});
Route::get('/artist', function () {
return view('artist');

});
    Route::get('/sponsor', function () {
return view('sponsor');

});
    Route::get('/viewer', function () {
return view('viewer');

});
    Route::get('/contact', function () {
return view('contact');

});

// This is for the Artist Linkings
//Route::group(['middleware' => 'artist'], function () {
        //Route::auth('artist');
    //Route::get('art/dashboard', 'SessionsController@index');

//Route::get('art/dashboard', ['middleware' => 'artist', function() {
//return view('art/dashboard');
//}]);
    //});
//Route::get('art/register', 'RegistrationController@register');
//Route::post('art/register', 'RegistrationController@postRegister');

//Route::get('register/confirm/{token}',        'RegistrationController@confirmEmail');


//Route::get('art/login', 'SessionsController@login');
//Route::post('login', 'SessionsController@postLogin');
//Route::get('/logout', 'SessionsController@logout');
//Route::get('art/dashboard', 'SessionsController@index');
//});

// Need to add the password stuff ect

// Route::group(['prefix' => 'viewer', 'namespace' => 'Viewer'], function () {
  //  require app_path('Http/Routes/viewers.php');
// });



// This is for all the Viewer Linkings


Route::get('viewer/register', 'ViewerRegistrationController@register');
Route::post('viewer/register', 'ViewerRegistrationController@postRegister');

Route::get('viewer/register/confirm/{token}', 'ViewerRegistrationController@confirmEmail');


Route::get('viewer/login', 'ViewerSessionsController@login');
Route::post('login', 'ViewerSessionsController@postLogin');
Route::get('/logout', 'ViewerSessionsController@logout');
Route::get('viewer/dashboard', 'ViewerSessionsController@index');
//});   
//}]);  

Solution

  • You can use this .

    For artist user as you define

    Route::group(["middleware" => ["auth.artist"], "prefix" => "artist","namespace"=>"Artist"], function() {
    
        Route::controller('artist',          'UsersArtistController');
        Route::controller('controles', 'controlsArtistController');
       });
    

    For viewer user if no any auth needed

     Route::group("prefix" => "viewer","namespace"=>"Viewer"], function() {
    
        Route::controller('Viewer ',          'UsersViewer Controller');
        Route::controller('controles', 'controlsViewerController');
       });