【问题标题】:Redirection issue in Codeigniter4Codeigniter4 中的重定向问题
【发布时间】:2019-11-05 15:40:40
【问题描述】:

我已经完成了管理控制器并将其放在名为“Admin”的子文件夹中

Controller
  Admin
   -login.php

现在我想通过我写这个的路由器文件来获取它

$routes->get('admin', 'Admin/Login::index');

但它显示“未找到”错误并重定向到 "http://localhost/admin"

会不会有一些 .htaccess 问题?

【问题讨论】:

  • 我相信最近发现了一个问题,即控制器被保存在子文件夹中。 AFIK,这正在处理中,很快就会出现修复。

标签: codeigniter codeigniter-4


【解决方案1】:

替换这个

$routes->get('admin', 'Admin/Login::index');

$routes->get('admin', 'Admin\Login::index');

还要确保在 login.php 中添加命名空间

namespace App\Controllers\Admin;

【讨论】:

    【解决方案2】:

    如果您保持 CI4 的目录结构完整,您实际上可以使用子文件夹来存放控制器、模型、视图等。

    例如 app/Controllers/Admin/Login.php 是放置 Controller 类的有效位置。确保在 Login.php 中添加适当的命名空间 - 命名空间 App\Controllers\Admin;同样在路由中 - $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 请求方法),它将失败并重定向。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-23
      • 2021-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多