0

I am having problems getting some routes to work. I have clearly declared some routes that just don't show up in php artisan route:list, even after clearing the cache.

Since I think this may be related to another line not being correct, I have pasted the entire routes file here. All the admin routes are working, but some "pro" and some "shop" routes are missing completely! There are several missing, so I will not list them all. I am out of thoughts as to how this is happening.

Auth::routes();

Route::prefix('cms')->middleware(['role:admin'])->namespace('Admin')->name('cms.admin.')->group(function () {
    Route::get('', 'CmsController@index')->name('index');

    Route::get('instellingen', 'CmsController@getSetting')->name('setting.get');
    Route::match(['put', 'patch'], 'instellingen', 'CmsController@updateSetting')->name('setting.update');

    Route::resource('coaches', 'ProController')->names('pro');
    Route::resource('winkels', 'ShopController')->names('shop');
    Route::resource('adviezen', 'AdviceController')->names('advice');
    Route::resource('notificaties', 'NotificationController')->names('notification');
});

Route::prefix('account')->name('account.')->group(function () {
    Route::middleware(['role:shop'])->namespace('Shop')->name('shop.')->group(function () {
        Route::get('', 'AccountController@index')->name('index');

        Route::get('instellingen', 'AccountController@getSetting')->name('setting.get');
        Route::match(['put', 'patch'], 'instellingen', 'AccountController@postSetting')->name('setting.post');
        Route::get('profiel', 'AccountController@getProfile')->name('profile.get');
        Route::match(['put', 'patch'], 'profiel', 'AccountController@postProfile')->name('profile.post');
        Route::get('coaches', 'AccountController@getPro')->name('pro.get');
        Route::match(['put', 'patch'], 'coaches', 'AccountController@postPro')->name('pro.post');

        Route::resource('adviezen', 'AdviceController')->names('advice');
    });

    Route::middleware(['role:pro'])->namespace('Pro')->name('pro.')->group(function () {
        Route::get('', 'AccountController@index')->name('index');

        Route::get('profiel', 'AccountController@getProfile')->name('profile.get');
        Route::match(['put', 'patch', 'delete'], 'profiel', 'AccountController@postProfile')->name('profile.post');
        Route::get('winkel', 'AccountController@getShop')->name('shop.get');
        Route::match(['post', 'delete'], 'winkel', 'AccountController@postShop')->name('shop.post');
        Route::get('postvak', 'AccountController@getNotification')->name('notification.get');
        Route::post('postvak', 'AccountController@postNotification')->name('notification.post');

        Route::resource('adviezen', 'AdviceController')->names('advice');
    });
});

Route::get('', 'SiteController@index')->name('site.index');

Result when printing the php artisan route:list -c (Yes, I know this is quite a lot of text, but I think it is necessary to see the complete picture and might help in the solving of this particular problem)

+------------------+------------------------------------+------------------------------------------------------------------------+
| Method           | URI                                | Action                                                                 |
+------------------+------------------------------------+------------------------------------------------------------------------+
| GET|HEAD         | /                                  | App\Http\Controllers\SiteController@index                              |
| GET|HEAD         | _debugbar/assets/javascript        | Barryvdh\Debugbar\Controllers\AssetController@js                       |
| GET|HEAD         | _debugbar/assets/stylesheets       | Barryvdh\Debugbar\Controllers\AssetController@css                      |
| DELETE           | _debugbar/cache/{key}/{tags?}      | Barryvdh\Debugbar\Controllers\CacheController@delete                   |
| GET|HEAD         | _debugbar/clockwork/{id}           | Barryvdh\Debugbar\Controllers\OpenHandlerController@clockwork          |
| GET|HEAD         | _debugbar/open                     | Barryvdh\Debugbar\Controllers\OpenHandlerController@handle             |
| GET|HEAD         | _debugbar/telescope/{id}           | Barryvdh\Debugbar\Controllers\TelescopeController@show                 |
| GET|HEAD         | account                            | App\Http\Controllers\Pro\AccountController@index                       |
| POST             | account/adviezen                   | App\Http\Controllers\Pro\AdviceController@store                        |
| GET|HEAD         | account/adviezen                   | App\Http\Controllers\Pro\AdviceController@index                        |
| GET|HEAD         | account/adviezen/create            | App\Http\Controllers\Pro\AdviceController@create                       |
| PUT|PATCH        | account/adviezen/{adviezen}        | App\Http\Controllers\Pro\AdviceController@update                       |
| GET|HEAD         | account/adviezen/{adviezen}        | App\Http\Controllers\Pro\AdviceController@show                         |
| DELETE           | account/adviezen/{adviezen}        | App\Http\Controllers\Pro\AdviceController@destroy                      |
| GET|HEAD         | account/adviezen/{adviezen}/edit   | App\Http\Controllers\Pro\AdviceController@edit                         |
| PUT|PATCH        | account/coaches                    | App\Http\Controllers\Shop\AccountController@postPro                    |
| GET|HEAD         | account/coaches                    | App\Http\Controllers\Shop\AccountController@getPro                     |
| GET|HEAD         | account/instellingen               | App\Http\Controllers\Shop\AccountController@getSetting                 |
| PUT|PATCH        | account/instellingen               | App\Http\Controllers\Shop\AccountController@postSetting                |
| GET|HEAD         | account/postvak                    | App\Http\Controllers\Pro\AccountController@getNotification             |
| POST             | account/postvak                    | App\Http\Controllers\Pro\AccountController@postNotification            |
| PUT|PATCH|DELETE | account/profiel                    | App\Http\Controllers\Pro\AccountController@postProfile                 |
| PUT|PATCH        | account/profiel                    | App\Http\Controllers\Shop\AccountController@postProfile                |
| GET|HEAD         | account/profiel                    | App\Http\Controllers\Pro\AccountController@getProfile                  |
| GET|HEAD         | account/winkel                     | App\Http\Controllers\Pro\AccountController@getShop                     |
| POST|DELETE      | account/winkel                     | App\Http\Controllers\Pro\AccountController@postShop                    |
| GET|HEAD         | api/user                           | Closure                                                                |
| GET|HEAD         | cms                                | App\Http\Controllers\Admin\CmsController@index                         |
| GET|HEAD         | cms/adviezen                       | App\Http\Controllers\Admin\AdviceController@index                      |
| POST             | cms/adviezen                       | App\Http\Controllers\Admin\AdviceController@store                      |
| GET|HEAD         | cms/adviezen/create                | App\Http\Controllers\Admin\AdviceController@create                     |
| PUT|PATCH        | cms/adviezen/{adviezen}            | App\Http\Controllers\Admin\AdviceController@update                     |
| DELETE           | cms/adviezen/{adviezen}            | App\Http\Controllers\Admin\AdviceController@destroy                    |
| GET|HEAD         | cms/adviezen/{adviezen}            | App\Http\Controllers\Admin\AdviceController@show                       |
| GET|HEAD         | cms/adviezen/{adviezen}/edit       | App\Http\Controllers\Admin\AdviceController@edit                       |
| GET|HEAD         | cms/coaches                        | App\Http\Controllers\Admin\ProController@index                         |
| POST             | cms/coaches                        | App\Http\Controllers\Admin\ProController@store                         |
| GET|HEAD         | cms/coaches/create                 | App\Http\Controllers\Admin\ProController@create                        |
| GET|HEAD         | cms/coaches/{coach}                | App\Http\Controllers\Admin\ProController@show                          |
| DELETE           | cms/coaches/{coach}                | App\Http\Controllers\Admin\ProController@destroy                       |
| PUT|PATCH        | cms/coaches/{coach}                | App\Http\Controllers\Admin\ProController@update                        |
| GET|HEAD         | cms/coaches/{coach}/edit           | App\Http\Controllers\Admin\ProController@edit                          |
| PUT|PATCH        | cms/instellingen                   | App\Http\Controllers\Admin\CmsController@updateSetting                 |
| GET|HEAD         | cms/instellingen                   | App\Http\Controllers\Admin\CmsController@getSetting                    |
| GET|HEAD         | cms/notificaties                   | App\Http\Controllers\Admin\NotificationController@index                |
| POST             | cms/notificaties                   | App\Http\Controllers\Admin\NotificationController@store                |
| GET|HEAD         | cms/notificaties/create            | App\Http\Controllers\Admin\NotificationController@create               |
| GET|HEAD         | cms/notificaties/{notificaty}      | App\Http\Controllers\Admin\NotificationController@show                 |
| PUT|PATCH        | cms/notificaties/{notificaty}      | App\Http\Controllers\Admin\NotificationController@update               |
| DELETE           | cms/notificaties/{notificaty}      | App\Http\Controllers\Admin\NotificationController@destroy              |
| GET|HEAD         | cms/notificaties/{notificaty}/edit | App\Http\Controllers\Admin\NotificationController@edit                 |
| POST             | cms/winkels                        | App\Http\Controllers\Admin\ShopController@store                        |
| GET|HEAD         | cms/winkels                        | App\Http\Controllers\Admin\ShopController@index                        |
| GET|HEAD         | cms/winkels/create                 | App\Http\Controllers\Admin\ShopController@create                       |
| GET|HEAD         | cms/winkels/{winkel}               | App\Http\Controllers\Admin\ShopController@show                         |
| DELETE           | cms/winkels/{winkel}               | App\Http\Controllers\Admin\ShopController@destroy                      |
| PUT|PATCH        | cms/winkels/{winkel}               | App\Http\Controllers\Admin\ShopController@update                       |
| GET|HEAD         | cms/winkels/{winkel}/edit          | App\Http\Controllers\Admin\ShopController@edit                         |
| GET|HEAD         | login                              | App\Http\Controllers\Auth\LoginController@showLoginForm                |
| POST             | login                              | App\Http\Controllers\Auth\LoginController@login                        |
| POST             | logout                             | App\Http\Controllers\Auth\LoginController@logout                       |
| POST             | password/confirm                   | App\Http\Controllers\Auth\ConfirmPasswordController@confirm            |
| GET|HEAD         | password/confirm                   | App\Http\Controllers\Auth\ConfirmPasswordController@showConfirmForm    |
| POST             | password/email                     | App\Http\Controllers\Auth\ForgotPasswordController@sendResetLinkEmail  |
| GET|HEAD         | password/reset                     | App\Http\Controllers\Auth\ForgotPasswordController@showLinkRequestForm |
| POST             | password/reset                     | App\Http\Controllers\Auth\ResetPasswordController@reset                |
| GET|HEAD         | password/reset/{token}             | App\Http\Controllers\Auth\ResetPasswordController@showResetForm        |
| POST             | register                           | App\Http\Controllers\Auth\RegisterController@register                  |
| GET|HEAD         | register                           | App\Http\Controllers\Auth\RegisterController@showRegistrationForm      |
+------------------+------------------------------------+------------------------------------------------------------------------+

It is not a syntax error, since my IDE does not give an error, so I am thinking it might be a logical one or something I am completely missing...

Any help would be much appreciated.

Kind regards, Niels

nepp95
  • 131
  • 1
  • 13
  • because you are registering multiple routes with the same URI and method... you can only have 1 route registered for a URI and method combination – lagbox Sep 07 '20 at 13:43
  • Wow I must have been blind. Thank you! – nepp95 Sep 07 '20 at 13:52

1 Answers1

3

Although the result was pretty embarrassing;

What I did was register multiple routes with the same URI and method. Although they had different namespaces and names, it conflicted.

Fixed by prefixing the URI in the 2 separate groups

Thanks to user lagbox for the answer.

nepp95
  • 131
  • 1
  • 13