allegjdm93
allegjdm93

Reputation: 602

Resource route within a group route

I am trying to group all the routes for our admin section to access model resources. So far I've come with this:

Route::group(['middleware' => 'auth', 'prefix' => 'admin', 'as' => 'admin::'], function() {

    Route::get('dashboard', ['as' => 'dashboard', function() {
        return view('pages.dashboard');
    }]);

    Route::resource('user', 'UserController', ['as' => 'user']);
    Route::resource('plan', 'PlanController', ['as' => 'plan']);    
    Route::resource('answer', 'AnswerController', ['as' => 'answer']);
    Route::resource('question', 'QuestionController', ['as' => 'question']);
    Route::resource('retailer', 'RetailerController', ['as' => 'retailer']);
    Route::resource('restriction', 'RestrictionController', ['as' => 'restriction']);
});

I want to name these routes to access them in a much easier manner by calling their names. However it breaks and says "Route [admin::user] not defined." I want to use the route naming feature to use route('admin::user'). I am having problem with the resource routes. The dashboard one works fine - route('admin::dashboard')

I take from this post that naming resource routes should work (Laravel named route for resource controller)

Upvotes: 2

Views: 448

Answers (1)

nathanmac
nathanmac

Reputation: 455

Resources are given route names automatically run php artisan route:list to list the routes out:

Route::group(['middleware' => 'auth', 'prefix' => 'admin', 'as' => 'admin::'], function() {

    Route::get('dashboard', ['as' => 'dashboard', function() {
        return view('pages.dashboard');
    }]);

    Route::resource('user', 'UserController');

});

Resulting Routes

  • admin::dashboard
  • admin::admin.user.store
  • admin::admin.user.index
  • admin::admin.user.create
  • admin::admin.user.destroy
  • admin::admin.user.show
  • admin::admin.user.update
  • admin::admin.user.edit

Upvotes: 3

Related Questions