Codeigniter 数据没有从控制器传递到视图 [重复]
Posted
技术标签:
【中文标题】Codeigniter 数据没有从控制器传递到视图 [重复]【英文标题】:Codeigniter data not being passed from controller to view [duplicate] 【发布时间】:2013-07-30 20:14:22 【问题描述】:我已经设置了一个 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); ?>
【问题讨论】:
你研究过你的问题吗?这似乎是相当基本的。 这类基本问题可以关注codeigniter documentation。 【参考方案1】:$data
在视图中不存在。相反,给定数组$data
中的每个键都有一个变量。因此,在您的情况下,您有 $title
、$heading
和 $message
。
请记住,传递的数据可能是匿名数组:
$this->load->view('test', array('title' => 'My Title',
'heading' => 'My Heading',
'message' => 'My Message'));
【讨论】:
【参考方案2】:您不需要访问视图中的$data
数组。直接访问密钥:
var_dump($title);
【讨论】:
我明白了,但为什么我不能转储整个 $data 数组以查看其内容?$data
在控制器方法中仅作为局部变量存在。
如果您想将所有数据放在一个变量中,请使用:$data['entire_data'] = array('title' => 'My title', 'heading' => 'My Heading');
【参考方案3】:
在视图中你可以这样打印:
<?php echo $title; ?>
<?php echo $heading; ?>
<?php echo $message; ?>
【讨论】:
【参考方案4】:快速提示 -- 不要在控制器或模型中包含结束 php 标记!
// bracket that closes class
// NO NO NO
?>
可能会弄乱文件。控制器或模型应以类右括号结束。 如果你愿意,可以发表评论
// heres a comment and its ok
而在您的视图文件中 - 始终关闭您的 php 代码。
【讨论】:
跟题有什么关系? 看他的代码示例。以上是关于Codeigniter 数据没有从控制器传递到视图 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
将数组数据从视图传递到控制器并反向 php codeigniter