#php #codeigniter
#php #codeigniter
Вопрос:
В моем проекте у меня есть один раздел поиска с 3 полями выбора. Я передал ей значение, используя
$data['restaurant_all']=$this->restaurant_model->get_all('','','','','','yes')->result();
$data['state_all']=$this->state_model->get_all();
$data['menu_all']=$this->menu_model->get_all('all','','','','','','yes')->result();
$data['restaurant']=$this->input->post('restaurant');
$data['state']=$this->input->post('area');
$data['food_type']=$this->input->post('menu');
Мне нужно это утверждение на всех моих страницах. Есть ли какой-либо способ выполнить это, не записывая эти инструкции на всех страницах
Ответ №1:
a. расширьте контроллер по умолчанию, создав файл MY_Contoller.php в подходящем месте.
б. создайте пользовательский класс, который расширит контроллер по умолчанию.
c. добавьте защищенную или общедоступную переменную $data в пользовательский класс.
e. сделайте что-нибудь с данными, используя __construct()
d. сделайте так, чтобы каждый контроллер расширял пользовательский контроллер.
e. вы можете получить доступ к этой переменной, как к любой другой переменной класса.
пример кода:
MY_Controller.php
class APP extends CI_controller {
protected $data;
function __construct() {
parent::__construct();
$this->_init();
}
function _init() {
$this->data['state'] = $this->input->post('area');
}
}
обычные контроллеры:
class Welcome extends APP {
function __construct() {
parent::__construct();
}
function view() {
/* pass this data value like normal data param */
$this->load->view('some_view', $this->data);
}
}
надеюсь, это поможет.
Комментарии:
1. Я уже получил это решение. Но это не работает в первый раз, потому что я создал файл в папке application / libraries. Но когда я изменил это на application / Core, у меня это сработало. Однако спасибо вам за ваш ответ
2. рад, что у вас это сработало. кроме того, убедитесь, что при использовании CI 2.x; расширьте все основные классы в папке application / core
Ответ №2:
Используйте константы, в /config/constants.php