我有一个项目并且遇到了问题。我使用 Codeigniter HMVC 并因此构建模块。我感谢您的帮助。谢谢。
我有两个模块方法,一个调用另一个。另一个提供数据库结果并将其加载到视图中,然后从第一个模块方法传递到模板。我现在意识到,由于我从第二个模块获得了视图而不是数据,因此我看不到如何检查是否返回了数据库记录,并且我不希望为此目的进行另一个数据库调用。“项目”和“描述”模块之间的分隔是必需的。相反,发送数据会造成一个非常混乱的结构,据我所知,这会抵消 HMVC 结构。因此,我需要保持这种结构。如何检查数据库记录是否存在,如果存在则只运行第一种方法?请指教。谢谢
通过 URL 调用的第一个模块(控制器方法)
function view_item($item_id)
{
$data['item_id'] = $item_id;
$data['item'] = $this->item;
$data['item_group'] = $this->item_group;
$data['content_module'] = Modules::run("descriptions/view",$item_id);
$data['active_menu_item'] = "descriptions";
$data['view_file'] = "handle_view";
$data['module'] = $this->module;
$template = "application";
$this->load->module('templates');
$this->load->templates->$template($data);
}
第一个模块方法调用的第二个模块方法
function view($item_id)
{
$data['title'] = "View description";
$data['page_title'] = "View description";
$data['page_subtitle'] = "This item";
$data['item_id'] = $item_id;
$array = array('item_id'=> $item_id,'group_id'=> $this->group_id);
$object = $this->get_where_custom($array);
$num_rows = $object->num_rows;
$descriptions = $object->result();
$data['description'] = $descriptions[0];
$this->load->view('view_view',$data);
}