Сделать значение конструктора контроллера глобальным codeigniter - PullRequest
1 голос
/ 06 января 2012

Я пытаюсь получить общее количество непрочитанных учетных записей из базы данных, значение присвоено $data['head']

Я хочу, чтобы $ data ['head'] был доступен глобально, чтобы он автоматически загружался вшаблон и отображается в заголовке.

Каков наилучший способ сделать это?

Ниже мой контроллер

function __construct()
    {

    parent::__construct();
    $this->load->model('process_model');
    $data['headbody']='includes/header';
    $data['head'] = $this->process_model->loadnew($this->session->userdata('id'));

    }


function invform()
    {
        $this->load->model('slave');
        $data['body']='slave-account';

        $data['questions'] = $this->slave->loadq($this->uri->segment(3));

        $this->load->view('includes/template',$data);
    }

Вид

$this->load->view($head);

 $this->load->view($body);

 $this->load->view('includes/footer');

1 Ответ

2 голосов
/ 06 января 2012

Сначала нужно преобразовать $ data в переменную вне функции, используя переменную scope. Может быть частным или публичным. Я сделал это частным в этом случае.

Вот краткий пересмотр:

private $data = array();

function __construct()
    {

    parent::__construct();
    $this->load->model('process_model');
    $this->data['headbody']='includes/header';
    $this->data['head'] = $this->process_model->loadnew($this->session->userdata('id'));

    }


function invform()
    {
        $this->load->model('slave');
        $this->data['body']='slave-account';

        $this->data['questions'] = $this->slave->loadq($this->uri->segment(3));

        $this->load->view('includes/template',$this->data);
    }

Обратите внимание на $ this-> data вместо $ data . Когда мы обращаемся к переменным внутри того же класса, но за пределами функции, мы используем $ this .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...