Codeigniter передает данные с контроллера для просмотра - PullRequest
6 голосов
/ 07 июня 2011

Согласно здесь У меня есть следующий контроллер:

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 создано в области видимости. Я просто случайно использовал одно и то же имя в контроллере

Ответы [ 7 ]

9 голосов
/ 07 июня 2011

Ах, ключи массива $data преобразуются в переменные: например, попробуйте var_dump($title);.

РЕДАКТИРОВАТЬ: это делается с использованием извлечения .

6 голосов
/ 03 августа 2012

вы должны сделать это так:

echo $title ;
echo $heading;
echo $message;
4 голосов
/ 31 января 2013

Или вы можете использовать его как массив. В контроллере:

...
$this->load->view('User_Login', array('data' => $data));
...

В представлении:

<?php print_r($data);?>

покажет вам массив ([title] => My Title [heading] => My Heading [message] => My Message)

1 голос
/ 19 февраля 2013

вы можете передать переменную в URL-адресе

function regresion($value) {

    $data['value'] = $value;
    $this -> load -> view('cms/template', $data);
}

В представлении

<?php print_r($value);?>
0 голосов
/ 05 ноября 2018

при отправке данных из контроллера для просмотра мы передаем их в массив, и ключи этих массивов преобразуются в переменные codeigniter кода и становятся доступными в файле представления.

В вашем коде ниже все ключи станут переменными вUser_Login.php

class User extends CI_Controller {
    public function Login()
    {
        $data = array(
               'title' => 'My Title',       //In your view it will be $title
               'heading' => 'My Heading',  //$heading
               'message' => 'My Message'  //$message
          );
        $this->load->view('User_Login', $data);
    }

}

и в вашем представлении User_Login.php вы можете получить к ним доступ следующим образом:

echo $title;
echo $heading;
echo $message;
0 голосов
/ 15 июля 2015

Вы можете использовать этот способ также

$data['data]=array('title'=>'value');
    $this->load->view('view.php',$data);
0 голосов
/ 15 июля 2015

Вы не можете распечатать переменную $ data, поскольку она является ассоциативным массивом .... вы можете распечатать каждый элемент ассоциативного массива ..... рассмотрите следующий пример.

Не делайте так:

echo $data;

Сделайте следующее:

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