HMVC集成在Codeigniter视图路径中。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HMVC集成在Codeigniter视图路径中。相关的知识,希望对你有一定的参考价值。

我正试图将HMVC整合到codeigniter中。我已经安装了MX文件到third_party,并上传了MY_Loader,MY_Loader和MY_Model到applicationcore文件夹中。

我有两个问题

1) 如何添加覆盖应用路由的模块路由?

我是通过链接访问模块的 localhost/domain/admin/portfolio

我试着把routes.php添加到模块配置中。application/modules/portfolio/config/routes.php 具体内容如下

 $route['admin/portfolio'] = 'portfolio/admin/portfolio';
 $route['admin/portfolio/add'] = 'portfolio/admin/portfolio/edit';
 $route['admin/portfolio/edit/(:num)'] = 'portfolio/admin/portfolio/edit/$1';

在我的根应用程序配置中已经添加了一个路由

$route['admin'] = 'admin/login';

因为这个路由中的'adminlogin'。application/config/routes.php 它显示页面未找到。为了解决这个问题,我目前已经添加了 module/portfolio/config/routes`` above the 'admin/login'. Is there any other method instead of adding it to theapplicationconfigroutes`。

2)如何访问模块的视图文件我有控制器访问视图文件,从 application/controlles/admin/

    $this->load->view('admin/view_header',$data);
    $this->load->view('admin/view_portfolio',$data);
    $this->load->view('admin/view_footer');
答案

你已经把你的投资组合控制器放在

application/modules/portfolio/controllers/admin

这很好。

你的路由(默认情况下会打到索引)应该是

$route['admin/portfolio'] = 'portfolio/admin/portfolio';

旁白:其他命名注意事项

我倾向于做的是创建一个控制器,名称中包含管理员... ...

所以我会有 PortfolioAdmin.php 或类似的东西,所以当我在我的EditorIDE中玩它时,我知道通过文件名,它是管理员 "Stuff"。

更新:关于你的

Nor this works Modules::run('admin/portfolio', $data);

所以你可以使用完整的控制器名称...... 不要使用路由,它们是用于URL的。任何你想从另一个模块调用的模块,你总是使用全名。

Modules::run('portfolio/admin/portfolio', $data);

以上是关于HMVC集成在Codeigniter视图路径中。的主要内容,如果未能解决你的问题,请参考以下文章

带有 Wiredesignz HMVC 路由的 CodeIgniter

插入批处理,如果在Codeigniter 3 HMVC中有重复的密钥更新

CLI 中的 Codeigniter HMVC:未进入控制器

使用 nginx 为 hmvc 结构设置 Codeigniter

CodeIgniter:关于 HMVC 和 Views 的一些疑惑

控制器中的 Codeigniter HMVC 错误调用函数