Moving Controllers to sub-folders in a correct way

If your application gets bigger, it makes sense to structure Controllers with sub-folders. But it takes a little more effort than just moving the files here and there. Let me explain the structure. For example, we want to have a sub-folder app/Http/Controllers/Admin and then inside of it we have our AdminController.php, that's fine. What we need to do inside of the file itself: 1. Correct namespace - specify the inner folder:
namespace App\Http\Controllers\Admin;
2. Use Controller - from your inner-namespace Laravel won't "understand" extends Controller, so you need to add this:
use App\Http\Controllers\Controller;
3. Routes - specify full path This wouldn't work anymore:
Route::get('admin', 'AdminController@getHome');
This is the correct way:
Route::get('admin', 'Admin\AdminController@getHome');
And that's it - now you can use your controller from sub-folder.

No comments or questions yet...

Like our articles?

Become a Premium Member for $129/year or $29/month
What else you will get:
  • 60 courses (1084 lessons, total 42 h 44 min)
  • 80 long-form tutorials (one new every week)
  • access to project repositories
  • access to private Discord

Recent Premium Tutorials