Laravel Controller Subfolder routing Laravel Controller Subfolder routing laravel laravel

Laravel Controller Subfolder routing


For Laravel 5.3 above:

php artisan make:controller test/TestController

This will create the test folder if it does not exist, then creates TestController inside.

TestController will look like this:

<?phpnamespace App\Http\Controllers\test;use Illuminate\Http\Request;use App\Http\Controllers\Controller;class TestController extends Controller{    public function getTest()    {        return "Yes";    }}

You can then register your route this way:

Route::get('/test','test\TestController@getTest');


Add your controllers in your folders:

controllers\---- folder1---- folder2

Create your route not specifying the folder:

Route::get('/product/dashboard', 'MakeDashboardController@showDashboard');

Run

composer dump-autoload

And try again


For those using Laravel 5 you need to set the namespace for the controller within the sub-directory (Laravel 5 is still in development and changes are happening daily)

To get a folder structure like:

Http----Controllers    ----Admin            PostsController.php    PostsController.php

namespace Admin\PostsController.php file like so:

<?php namespace App\Http\Controller\Admin;use App\Http\Controllers\Controller;class PostsController extends Controller {    //business logic here}

Then your route for this is:

$router->get('/', 'Admin\PostsController@index');

And lastly, don't for get to do either composer or artisan dump

composer dump-autoload

or

php artisan dump