首页 > 解决方案 > 如何在 CodeIgniter 4 的路由中调用子文件夹控制器方法

问题描述

我在子文件夹中有控制器

--Controllers
----Admin
--------UserController
--------AccountController
----User
--------UserController
--------AccountController

我为它写路线

$routes->group('user', function ($routes){
    $routes->get('dashboard', 'UserDashboard::index');
    $routes->get('changePassword', 'User\AccountController::changePassword');
});

即使我有方法并且也有输出,它也给了我 404

控制器代码

<?php namespace App\Controllers;

use App\Controllers\BaseController;

class AccountController extends BaseController
{
    public function index()
    {
        echo "Hello";
        exit();
        return view('user/account/changePassword');
    }

    public function changePassword()
    {
        echo "Change Password View";
        exit();
        return view('user/account/changePassword');
    }
}

在此处输入图像描述

标签: codeigniterroutescodeigniter-4

解决方案


您需要更改控制器的命名空间。

用户控制器

<?php namespace App\Controllers\User;

use App\Controllers\BaseController;

class AccountController extends BaseController
{
    
}

管理员控制器

<?php namespace App\Controllers\Admin;

use App\Controllers\BaseController;

class AccountController extends BaseController
{
    
}

推荐阅读