Codeigniting不接受我的数据?

时间:2013-04-02 20:15:42

标签: php codeigniter

我完全是新手,并且已经阅读了有关codeigniter的教程。

我的问题是我一直这样:

 A PHP Error was encountered

 Severity: Notice

 Message: Undefined variable: data

 Filename: views/welcome_message.php

 Line Number: 70

我的控制器“welcome.php”:

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

   class Welcome extends CI_Controller {


public function index()
{
    $data = array();
    $data['title'] = "Hello world";
    $this->load->view('welcome_message', $data);
}

 }

我的观点是

我在视图加载中使用“$ data”,但我一直收到此消息,为什么?

3 个答案:

答案 0 :(得分:3)

您放入控制器内$data的密钥将成为您视图中的变量(extract())。所以在你的例子中,:

// controller
$data['title'] = 'hello world';

将在您的视图中显示为:

// view
<?php print $title ?>

您无需在视图中为$data添加前缀。

答案 1 :(得分:1)

$data就像“高速公路”一样 - 数据到达视图所需的路线。从技术上讲,它只是一个用于传输设置到视图的变量的数组。

数据在视图中后,您可以通过$data的密钥进行引用。因此,在您的情况下,在视图中,您将标题引用为$title

可以根据需要命名此数组,但约定是使用data

所以,在我的控制器中,我可以做到:

$stuff['title'] = "This is my title";
$this->load->view('my_view', $stuff);

在视图中:

echo $title;//echo's out "This is my title"

答案 2 :(得分:0)

您的视图可能正在尝试使用$ data ...未定义,因为它不会作为$ data ['data']存在于发送到视图的数组中。