HMVC集成在Codeigniter视图路径中。

问题描述 投票:-1回答:1

我正试图将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');
php codeigniter hmvc
1个回答
1
投票

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

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);
© www.soinside.com 2019 - 2024. All rights reserved.