Есть ли способ в codeigniter определить глобальную функцию, которую можно легко вызывать во всех контроллерах?
У меня есть приложение, которое покажет всех последних пользователей, которые зарегистрировались в приложении.
что я делаю сейчас, я автоматически загрузил модель Latest_model
с функцией ниже
function new_users()
{
$this->db->select('*');
$this->db->from('users');
$this->db->order_by('id', 'DESC');
$this->db->limit('5');
$query = $this->db->get();
return $query->result_array();
}
и на всех контроллерах, в начале я называю эту модель
$data['new'] = $this->Latest_model->new_users();
Это работает, но мне нужно повторить это во всех функциях.
Так что будет лучшим способом достичь этого?
Любая помощь будет оценена
Вы всегда можете расширить контроллер по умолчанию с новыми функциями. Документация кодигнитера это хорошее место для начала.
Короче говоря, вы должны создать свой базовый контроллер с именем MY_Controller
под application/core/
папка.
Затем вы можете поместить в этот файл такой код:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Controller extends CI_Controller {
protected $data = [];
function __construct() {
parent::__construct();
$this->data['new'] = $this->Latest_model->new_users();
}
}
Тогда из всех ваших контроллеров вы можете получить доступ к data
массив с $this->data
,
Других решений пока нет …