CodeIgniter 将数据传递给视图
Posted
技术标签:
【中文标题】CodeIgniter 将数据传递给视图【英文标题】:CodeIgniter passing data to the view 【发布时间】:2013-01-11 01:41:30 【问题描述】:我正在尝试像这样从我的控制器传递到视图...
public function playerslist()
$this->load->database();
$data = $this->db->get('skaters');
$this->load->helper('url');
$this->load->view('playerslist', $data);
在我看来……
<?php echo $data; ?>
但我收到此错误...
遇到了 PHP 错误
严重性:通知
消息:未定义变量:数据
文件名:views/playerslist.php
行号:76
我做错了什么?
我想对这些数据做的事情是放在一个 foreach 语句中并显示 $data 数组中的所有内容
foreach($data as $value => $key)
echo $key . "<br/>";
谢谢, J
【问题讨论】:
Codeigniter passing data from controller to view的可能重复 【参考方案1】:您无法直接从您的视图访问$data
。您传递给视图的$data
必须是关联数组。然后键将在您的视图中转换为变量。
例如:
$data = array(
'name' => 'John',
'bars' => 23
);
$this->load->view('playerslist', $data);
然后,在您看来,这些将被转换为变量:
<?php echo $name; ?> has <?php echo $bars; ?> bars of chocolate.
如果您想以原始格式访问数据,请将 that 传递到关联数组中:
$data = $this->db->get('skaters')->result();
$this->load->view( 'playerslist', array('data' => $data) );
【讨论】:
谢谢乔,那么我将如何将我的数据库带入视图?所以我可以显示我的数据 它有效,但是当我尝试在我的视图中为 $data 执行 foreach 语句时,它返回了这个 conn_idResource id #13 result_idResource id #14 result_arrayArray result_objectArray custom_result_objectArray current_row0 num_rows1 row_data @user1269625 - 您必须在查询时致电result()
。请参阅我的第二次更新。【参考方案2】:
根据您的问题和示例代码,我得出结论,您希望从表“溜冰者”中检索数据并将其显示在视图中。
$this-> db-> get ('skaters'); //not return result object or array
你需要改代码
$ this-> db-> get ('skaters') -> result (); // return object
或
$ this-> db-> get ('skaters) -> result_array (); //return array
查看此链接http://ellislab.com/codeigniter/user-guide/database/results.html
数据通过视图加载函数的第二个参数中的数组或对象的方式从控制器传递到视图。 然后codeigniter将使用'extract'函数http://php.net/manual/en/function.extract.php提取第二个参数
public function playerslist ()
$ this-> load-> database ();
$ data = $ this-> db-> get ('skaters') -> result ();
$ this-> load-> helper ('url');
$ this-> load-> view ('playerslist', array ('data' => $ data));
【讨论】:
以上是关于CodeIgniter 将数据传递给视图的主要内容,如果未能解决你的问题,请参考以下文章
如何在 codeigniter 中使用 $this_render->view("pagename",$renderData) 将数据传递给视图?