我已经完成了管理控制器,并将其放在名为"admin"的子文件夹中
Controller
Admin
-login.php
现在我想通过我写这个的路由器文件来获取它
$routes->get('admin', 'Admin/Login::index');
但它显示"未找到"错误并重定向到"http://localhost/admin"
。
可能有.htaccess问题吗?
替换此
$routes->get('admin', 'Admin/Login::index');
$routes->get('admin', 'AdminLogin::index');
还要确保在login.php 中添加命名空间
namespace AppControllersAdmin;
如果你保持CI4的目录结构不变,你实际上可以使用控制器、模型、视图等的子文件夹。
例如,app/Controllers/Admin/Login.php是放置Controller类的有效位置。确保在Login.php中添加适当的命名空间-namespace App\Controllers\Admin;同样在routes-$routes->get('admin','App\Controllers\admin\Login::index'(中;在没有App\Controllers前缀的情况下工作是很可能的,但我从未对其进行过广泛的测试,我认为以前CI4的某些版本存在问题。
另一个问题可能是您的app/Config/app.php类。如果你没有更改.htaccess文件(公共目录中的文件!(中的任何内容,$baseURL应该设置为你的公共目录地址-http://localhost/myproject/public/。或者,如果你想让它变得更容易——设置虚拟主机。
$routes中的一个需要添加的东西-get((方法只允许get请求,这意味着如果您试图POST某个东西(或使用任何其他HTTP请求方法(,它将失败并重定向。