【问题标题】:Calling module controller function from page formulary in CodeIgniter 4.1 HMVC从 CodeIgniter 4.1 HMVC 中的页面公式调用模块控制器函数
【发布时间】:2021-10-31 05:54:00
【问题描述】:

我正在使用应用程序 HMVC CodeIgniter 4.1,所有路线在导航器中都可以正常工作:

导航器地址:http://localhost/myapp/public/index.php/installation/shop-data

我的模块路由文件包含:

$routes->group("installation", ["namespace" => "\Modules\Installation\Controllers"], function ($routes) {

    //Example URL: /installation/shop-data
    $routes->get("shop-data", "InstallationController::shop_data");
    $routes->get("shop-data-post", "InstallationController::shop_data_post");

});

shop_data_post 是我将数据从页面表单插入数据库的函数:

echo form_open("installation/shop-data-post");

但是我得到这个 404 错误:

找不到控制器或其方法:\App\Controllers\Installation::shop-data-post

如何从我的页面公式中正确获取我的函数?

谢谢

【问题讨论】:

  • 据我了解,CI4 期望控制器位于 app 文件夹中。所以如果你有另一个模块,一个更好的结构将是 ROOTFOLDER -> MODULE_NAME -> app -> Controllers 并且路径应该包含在 Autoload 文件中。
  • 通常是的,但我正在使用 HMVC 格式。谢谢

标签: forms module controller codeigniter-4 hmvc


【解决方案1】:

好的,我终于解决了这个问题..

我必须做的就是更改我的模块安装路径文件:

这一行:

$routes->get("shop-data-post", "InstallationController::shop_data_post");

为此:

$routes->match(["get", "post"], "shop-data-post", "InstallationController::shop_data_post");

错误出现在路由请求方法上。处理表单数据必须是 POST

【讨论】:

    猜你喜欢
    • 2017-04-15
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 2012-02-17
    • 2013-05-06
    • 2013-07-02
    • 2018-12-30
    相关资源
    最近更新 更多