如何在 CodeIgniter 4 的路由中调用子文件夹控制器方法
How to Call Subfolder Controller method in Routes in 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');
}
}
您需要更改控制器的命名空间。
用户控制器
<?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
{
}
我在子文件夹中有控制器
--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');
}
}
您需要更改控制器的命名空间。
用户控制器
<?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
{
}