В соответствии с этим у меня есть следующий контроллер:
class User extends CI_Controller { public function Login() { //$data->RedirectUrl = $this->input->get_post('ReturnTo'); $data = array( 'title' => 'My Title', 'heading' => 'My Heading', 'message' => 'My Message' ); $this->load->view('User_Login', $data); } //More... }
и в моем файле User_Login.php
я делаю это:
<?php print_r($data);?>
что приводит к:
A PHP Error was encountered Severity: Notice Message: Undefined variable: data Filename: views/User_Login.php Line Number: 1
Нужно ли загружать какие-либо конкретные модули / помощники, чтобы заполнить переменную $ data? Если я print_r($this)
, я вижу много вещей, но ни одна из моих данных, кроме кэшей
Изменить: Чтобы уточнить, я знаю, что вызов переменной в контроллере и представлении не будет «разделять» его – это вне области видимости, но в примере, который я связал, похоже, что в области создается переменная $data
представления. Я просто использовал одно имя в контроллере
Ах, ключи массива $data
преобразуются в переменные: try var_dump($title);
например.
EDIT: это делается с помощью экстента .
вы должны сделать это так:
echo $title ; echo $heading; echo $message;
Или вы можете использовать его как массив. В контроллере:
... $this->load->view('User_Login', array('data' => $data)); ...
Ввиду:
<?php print_r($data);?>
покажет вам массив ([title] => My Title [heading] => My Heading [message] => My Message)
вы можете передать переменную в URL-адресе
function regresion($value) { $data['value'] = $value; $this -> load -> view('cms/template', $data); }
В представлении
<?php print_r($value);?>
Вы не можете распечатать переменную $ data, так как это ассоциативный массив …. вы можете печатать каждый элемент ассоциативного массива ….. рассмотрим следующий пример.
Не делайте следующее:
echo $data;
Сделайте следующее:
echo $title; echo $heading; echo $message;
Вы также можете использовать этот способ
$data['data]=array('title'=>'value'); $this->load->view('view.php',$data);