Ошибка Codeigniter с классом в вспомогательном модуле

0

У меня проблема с моим помощником codeigniter.

Это мой контроллер, который вызывает представление:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Login extends CI_Controller {

    function __construct() {
        parent::__construct();
    }

    function index() {
        $this->load->view('inc/header');
        $this->load->view('login_view');
        $this->load->view('inc/footer');
    }
}

Это отлично работает, но у меня есть более одного контроллера с несколькими функциями, которые могут вызвать представление.

поэтому я думал, что я помогаю:

function view($site) {
    $this->load->view('inc/header');
    $this->load->view($site);
    $this->load->view('inc/footer');
}

Когда я называю этого помощника следующим образом:

view('login_view');

Я получаю эту ошибку:

> Fatal error: Using $this when not in object context in C:\.....\application\helpers\custom_helper.php on line 23

строка 23 =

$this->load->view('inc/header');

Что не так с этим кодом?

Теги:
class
codeigniter

1 ответ

1
Лучший ответ

При создании помощников вы должны использовать функцию get_instance. Это позволяет вашей функции использовать ресурсы CodeIgniter.

Таким образом, ваша функция будет выглядеть так:

function view($site)
{
    $CI =& get_instance();

    $CI->load->view('inc/header');
    $CI->load->view($site);
    $CI->load->view('inc/footer');
}

РЕДАКТИРОВАТЬ:

Вы также должны передать массив этой функции, которая позволит вам загружать данные в представление. Как это;

function view($site, $data = array())
{
    $CI =& get_instance();

    $CI->load->view('inc/header', $data);
    $CI->load->view($site, $data);
    $CI->load->view('inc/footer', $data);
}
  • 0
    Это сделал, это работает заново :-)
  • 0
    Вы также должны передать массив в функцию представления для любых динамических данных, которые вы хотите передать представлению. Я обновлю свой ответ с новой функцией, чтобы показать вам.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню