вызов функции контроллера из представления в codeigniter

Я новичок в codeigniter, и я пытаюсь написать функцию, которая в основном сохранит имя и url для данных сеанса всякий раз, когда вы посещаете определенную страницу, а затем сообщите об этом в небольшом виджете на экране.

Он должен работать как своего рода функция истории для того, какие страницы были доступны и в каком порядке. Пока работа с тестовыми данными отлично работает! однако я пытаюсь выяснить, как я могу назвать функцию «добавить» на каждой посещенной странице, поэтому мы можем указать имя и URL-адрес страницы, которая была посещена. Есть какой-либо способ сделать это? Или есть способ сообщить о наборе переменных, таких как имя и URL-адрес страницы после ее посещения?

Например: скажем, я посещаю page1, page2, page3 и page6, и я хочу, чтобы каждый из них отображался в моей функции истории. На каждой из этих страниц я бы загрузил представление истории, и я хотел бы назвать функцию контроллера журнала "add(name,url)" и заполнить ее примерно так:

 add('page1','page1.php') 

Но я знаю, что вы не должны получать доступ к контроллеру из истории, потому что это не так, как это должно быть сделано, но я не могу придумать лучшего способа сделать это. Любая помощь будет оценена по достоинству.

Я не знаю, почему вы не называете это на каждом контроллере. но если вы хотите вызвать функцию текущего контроллера, вы должны получить экземпляр текущего контроллера таким образом:

 <?php $CI =& get_instance(); $CI->method($param); ?> 

самый простой способ сделать это – поместить метод в конструктор вашего класса. таким образом, он всегда будет работать первым, независимо от того, что вы делаете. помните, что все, что вы можете сделать в контроллере – сеансы, проверки и т. д. – вы можете сделать в модели.

 function __construct() { parent::__construct(); // load model that has page tracker methods $this->load->model( 'pagetracker_m' ); // call the method to track the pages, and have it return the results if ( ! $this->history = $this->pagetracker_m->_trackpage(); ) { echo 'Error getting history ' ; } } // end construct function something() { // pass history to $data, then use echo $history->firstpage, etc in view $data['history'] = $this->history ; // call your view etc }