Codeigniter - установить переменную в поле зрения - PullRequest
1 голос
/ 29 сентября 2011

Могу ли я установить переменную в файле вида?

для примера: У меня есть контроллер: welcome.php Его нагрузка:

$this->load->view('header');
$this->load->view('main');
$this->load->view('footer');

Мне нужно установить переменную в файле main.php и войти в footer.php

Это возможно?

Ответы [ 3 ]

5 голосов
/ 04 сентября 2012

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

$this->load->view('main'); //load before
$this->load->view('footer'); //load after

Внутри main.php сделайте $this->load->vars(array('your_variable'=>'it's value'));, и вы сможете вызывать его в нижнем колонтитуле, как и любую другую переменную. Единственное требование - загружать файл main.php до файла footer.php.

3 голосов
/ 29 сентября 2011

Невозможно установить переменную в файле представления и получить к нему доступ из другого. Нет никакой причины, по которой вы должны устанавливать переменные в ваших файлах просмотра. Контроллер должен обрабатывать всю логику вашего приложения, поэтому вы должны установить переменную там. Я бы порекомендовал прочитать руководство пользователя или просмотреть некоторые статьи, чтобы лучше понять принципы MVC.

Чтобы получить доступ к одной и той же переменной в нескольких представлениях, передайте ее каждому загруженному представлению.

// Set your variable
$data['variable'] = 'value';

// Pass variable to multiple views
$this->load->view('main', $data);
$this->load->view('footer', $data);
1 голос
/ 30 сентября 2011

Вы можете передать оба вида массив или объект , например:

$data = new StdClass;
$data->title = "The Title";
$data->content = "The Content";

$this->load->view('main', $data);

или

$data = new SomeClass;
$this->load->view('main', $data);

Кроме того, в каждом представлении вы можете передавать разные данные:

$data1 = array("key" => "val");
$data2 = $this->some_class->some_method($params);
$data3 = $this->another_class->another_method($params);

$this->load->view('navigation', $data1);
$this->load->view('main', $data2);
$this->load->view('footer', $data3);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...