我正在尝试在 Codeigniter HMVC 中制作一个 CRUD 模块,但我似乎在此过程中遗漏了一些东西。这就是我所面临的。
我有一个具有管理功能的新闻模块
function manage(){
$grid = Modules::run('Crud/renderGrid', 'News' , 'News management');
}
渲染网格函数
function renderGrid($module , $page_title){
$data['page_title'] = $page_title; //Dynamic
$data['module'] = $module;
$data['view_module'] = 'Crud';
$data['displayfields'] = Modules::run($module.'/get_displayfields');
$data['key'] = Modules::run($module.'/get_key');
$data['rows'] = Modules::run($module.'/get' , $data['key']);
$data['view_file'] = 'manage';
$this->load->module('dashboard');
$this->dashboard->show_dashboard($data);
}
在这里,show_dashboard 函数只是加载了一个模板布局,其中包含所需的视图。
function show_dashboard($data = NULL){
if($data == NULL){
$data['view_file'] = "manage";
$data['page_title'] = 'Sigma Web Solutions';
}
$this->load->module('templates');
$this->templates->admin($data);
}
模板->管理
function admin($data){
$this->load->view('admin' , $data);
}
视图(省略页眉和页脚)
<?php
if (!isset($view_file)) {
$view_file = "";
}
if (!isset($view_module)) {
$module = $this->uri->segment(1);
}
if (($view_module!="") && ($view_file!="")) {
$path = $view_module."/".$view_file;
$this->load->view($path);
}
?>
现在,当我尝试使用url news/manage 时,它给了我一个没有源代码的空白页面。但是当我尝试类似的东西时
crud/renderGrid/news/sometitle/ 它工作得很好。
请指出我在这里错过了什么。谢谢。
工作解决方案:
感谢 wolf 我添加了一条路线
$route['managenews']='crud/renderGrid/news/News';
它就像魅力一样。但是为什么我在这里需要一条路线?它不应该只是工作吗。这意味着对于每个模块,我的路由文件中都需要有 4 个条目才能使 CRUD 系统正常工作。任何人都可以提出更好的方法吗?