Я новичок в использовании codeIgniter, мне очень жаль, если я задаю глупый простой вопрос. Я делаю простой новостной сайт для моего учебного проекта с формой входа для администратора на той же странице (домашней странице), что и новостные сообщения (например, 2 кадра в html). Можно ли загрузить некоторые функции и классы из разных контроллеров и моделей в одном представлении)? Из многих примеров, которые я узнал, у него всегда есть только страница входа без другого столбца с разными контроллерами. И я пытался сделать то, что считаю правдой, но все, что я пробовал, просто не сработало. Если кто-нибудь знает решения, объяснения или подобные примеры для этой проблемы, пожалуйста, поделитесь мне объяснением в любой форме (видео, веб-ссылка, документ, что угодно). Спасибо, прежде чем ..
Если вам нужны функции между контроллерами, вы должны определить это как модель CI или, по крайней мере, помощник. Контроллеры — это просто интерфейсы между моделями и представлениями. Вам необходимо создать модель входа в систему, обычно с этими функциями:
$user -> getUserInfo()
$user -> login()
$user -> logout()
$user -> register()
$user -> userExists()
$user -> isLoggedIn()
..
а затем вызвать их внутри ваших контроллеров.
Редактировать для комментария: Да, вы можете включать представления в свои представления, и это похоже на обычное использование.
Первый способ: прямо в контроллере
$this->load->view("header");
$this->load->view("subpage");
$this->load->view("footer");
и результат будет иметь три вида, добавленных вместе. Источник: https://ellislab.com/codeigniter/user-guide/general/views.html
Второй способ: в контроллере присваивание переменных
$data = array();
$data["header"] = $this->load->view("header", NULL, TRUE);
$data["footer"] = $this->load->view("footer", NULL, TRUE);
$this->load->view("subpage", $data);
и в представлении подстраницы:
<?php echo $header;?>
(Sub page view data)
<?php echo $footer;?>
Третий метод: непосредственно в представлении подстраницы
<?php $this->load->view('header');?>
(subpage content)
<?php $this->load->view('footer');?>
Источники для второго и третьего: https://ellislab.com/forums/viewthread/88335/
Других решений пока нет …