Как отправить данные / переменную из одного метода в другой в том же контроллере в CodeIgniter? - PullRequest
2 голосов
/ 26 марта 2012

У меня есть 2 функции / методы в одном контроллере в CodeIgniter, например:

public function _get_page_settings() {
    $page_settings = $this->page_model->get_page_settings();
    $data['ps'] = $page_settings;
}

public function registration() {
    $this->_get_page_settings();
    $this->load->view('page_registration', $data);
}

Первый метод _get_page_settings () получает некоторые данные из базы данных и сохраняет их в переменной ps внутри массива данных.

Я хочу использовать этот метод во многих других методах внутри этого контроллера.

Итак, как правильно отправить данные в registration () , потому что этот код выше не работает нормально. Это бросить эту ошибку на мой взгляд: Сообщение: неопределенная переменная: данные в строке 70, это строка: $ this-> load-> view ('page_registration', $ data);

РЕДАКТИРОВАТЬ: решено!

Я наконец понял это. Вы можете сделать это так:

public function _get_page_settings() {
    $data['ps'] = $this->page_model->get_page_settings();
    $this->ps = $data['ps'];
}

public function registration() {
    $this->_get_page_settings();
    $this->load->view('page_registration', $this->ps);
}

и вывести его в виде, например ::1010*

<?php echo $this->ps->page_name; ?>

1 Ответ

2 голосов
/ 26 марта 2012

$data просто имеет другую область видимости, это не зависит от CodeIgniter. Вы можете решить это двумя способами:

  • Сделать $data свойством класса ($this->data)
  • Сделайте _get_page_settings() для возврата $data и присвойте его переменной при вызове.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...