Is there a way in codeigniter to define a global function that can be called in all controllers easily?
I have a application that will show all latest users who have registered on the app.
what im doing now is, i have autoloaded a model Latest_model
with the below function
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();
}
and on all the controllers, at the beginning i call this model
$data['new'] = $this->Latest_model->new_users();
It works but, i need to repeat this in all the functions.
So what would be the best way to achieve this?
Any help will be appreciated
You can always extend default controller with new functionality. Codeigniter's documentation is the good place to start.
In short you should create your base controller named MY_Controller
under application/core/
folder. Then you can place inside this file some code like this:
<?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();
}
}
Then from all your controllers you can access the data
array with $this->data
.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.