Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter视图路径中的HMVC集成_Php_Codeigniter_Hmvc - Fatal编程技术网

Php Codeigniter视图路径中的HMVC集成

Php Codeigniter视图路径中的HMVC集成,php,codeigniter,hmvc,Php,Codeigniter,Hmvc,我试图将HMVC聚合到codeigniter。我已将MX文件安装到第三方,并将MY_Loader、MY_Loader和MY_Model上载到application/core文件夹。它工作得很好 我有两个问题 1) 如何添加覆盖应用程序路由的模块路由 我通过链接localhost/domain/admin/portfolio 我已经尝试将routes.php添加到modules configapplication/modules/portfolio/config/routes.php,详细信息如下

我试图将HMVC聚合到codeigniter。我已将MX文件安装到第三方,并将MY_Loader、MY_Loader和MY_Model上载到application/core文件夹。它工作得很好

我有两个问题

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

我通过链接
localhost/domain/admin/portfolio

我已经尝试将routes.php添加到modules config
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';
由于
application/config/routes.php
中的“admin/login”路由,它显示未找到的页面。为了解决这个问题,我目前在“admin/login”上方添加了
module/portfolio/config/routes``。是否有其他方法代替将其添加到
application/config/routes`

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'

旁白:其他命名注意事项

我倾向于创建一个名为admin的控制器

所以我会使用PortfolioAdmin.php或者类似的东西,所以当我在编辑器/IDE中使用它时,我通过文件名知道它是admin“Stuff”

更新: 关于你的

Nor this works Modules::run('admin/portfolio', $data);
因此,您将使用完整的控制器名称。。。不要使用路由,它们用于URL。您要从另一个模块调用的任何模块始终使用全名

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

您是如何授权访问管理功能的?我已经更新了关于您的modules::run命令的答案。我已经更新了内容。它仍然不起作用。我已复制模块位置,是否正确