У меня есть проект, и я столкнулся с проблемой. Я использую Codeigniter HMVC и поэтому собираю модули. Я ценю вашу помощь. Благодарю.
У меня есть два метода модуля, где один вызывает другой. Другой доставляет результат базы данных и загружает его в представление, которое затем передается в шаблон из 1-го метода модуля. Теперь я понимаю, что, поскольку я получаю представление, а не данные из 2-го модуля, я не вижу, как я могу проверить, возвращена ли запись базы данных, и я не хочу еще один вызов базы данных только для этой цели.
Разделение между модулями «item» и «description» является обязательным.
Отправка данных вместо этого создаст действительно грязную структуру, которая, насколько я понимаю, будет противодействовать структуре HMVC. Поэтому мне нужно сохранить эту структуру.
Как я могу проверить, существует ли запись в базе данных, и запустить только 1-й метод, если он есть? Пожалуйста, порекомендуйте. Спасибо
1-й модуль (метод контроллера) вызывается через 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);
}
Метод 2-го модуля вызывается методом 1-го модуля
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);
}
if(isset($data['content_module']))
Был бы альтернативой.
Надеюсь это поможет.
Других решений пока нет …