1

我已经设置了一个codeigniter环境。我能够将数据从欢迎控制器传递到视图,但我创建了一个名为 TestController 的新控制器,但我无法将数据传递到我的测试视图。它说未定义的变量。

遇到 PHP 错误

严重性:通知

消息:未定义变量:数据

文件名:views/gallery.php

行号:4

控制器

<?php

class Testcontroller extends CI_Controller {


    // --------------------------------------------------------------------

    /**
     *  The constructor
     */
    function __construct()
    {
        parent::__construct();  



    }


    function index() {


    $data = array('title' => 'My Title',
              'heading' => 'My Heading',
              'message' => 'My Message');

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

    }
}

?>

测试视图

<?php   var_dump($data); ?> 

4

4 回答 4

6

$data视图中不存在。相反,给定数组中的每个键都有一个变量$data。所以,在你的情况下,你$title$heading$message

请记住,传递的数据可能是匿名数组:

$this->load->view('test', array('title' => 'My Title',
              'heading' => 'My Heading',
              'message' => 'My Message'));
于 2013-07-30T20:18:57.577 回答
3

您不需要访问$data视图中的数组。直接访问密钥:

var_dump($title);
于 2013-07-30T20:15:25.780 回答
0

在视图中,您可以像这样打印:

<?php echo $title; ?>
<?php echo $heading; ?>
<?php echo $message; ?>
于 2013-07-30T20:23:40.347 回答
-1

快速提示 -不要在控制器或模型中包含结束 php 标记!

} // bracket that closes class

 // NO NO NO
?>  

可以弄乱文件。控制器或模型应以类右括号结束。如果你愿意,你可以发表评论

} // heres a comment and its ok

而在您的视图文件中 - 始终关闭您的 php 代码。

于 2013-07-30T23:46:13.110 回答