Search code examples
codeigniterroutescontrollercodeigniter-4

CodeIgniter4 - Controller or Method Not Found When Using Routing Groups and Subdirectory in Controllers


I have a controller here: /app/Controllers/Admin/AdminDashboardController.php

<?php

namespace App\Controllers;

class AdminDashboardController extends BaseController
{
    public function index()
    {
        return view('pages/admin');
    }    
}

And in the Routes (app/Config/Routes.php), I added a Grouped Route like this:

$routes->group('admin', ['filter' => 'authGuard'], static function ($routes) {
    $routes->get('/', 'Admin\AdminDashboardController::index');
});

But I got a 404 error saying this:

Controller or its method is not found: \App\Controllers\Admin\AdminDashboardController::index

Any inputs?


Solution

  • Your controller namespace is App\Controllers. For your route to work the namespace would have to be App\Controllers\Admin.

    <?php
    
    namespace App\Controllers\Admin;
    
    use App\Controllers\BaseController;
    
    class AdminDashboardController extends BaseController
    {
        public function index()
        {
            return view('pages/admin');
        }
    }