Бывают моменты, когда необходимо сделать базовый запрос в вашей модели, например выводить записи с учётом языка. Данный пример показывает, как не дублировать постоянно код в каждом методе модели.
class Post extends CI_Model {
protected $table = 'posts';
public function __construct() {
$this->load->database();
}
/**
* Базовый запрос с ограничением по языку
*/
private function base_query() {
$lang = $this->session->userdata('lang') ? $this->session->userdata('lang') : 'ru';
return $this->db->where('lang', $lang);
}
/**
* Выборка всех постов
*/
public function get_posts() {
$query = $this->base_query()->get($this->table);
return !is_null($query->row()->id) ? $query->row() : false;
}
}