我正试图从我的控制器传递给视图,就像这样......
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/>";
}
谢谢, Ĵ
答案 0 :(得分:6)
您无法直接从视图中访问$data
。传递给视图的$data
必须是关联数组。然后,键将转换为视图中的变量。
例如:
$data = array(
'name' => 'John',
'bars' => 23
);
$this->load->view('playerslist', $data);
然后,在您的视图中,这些将转换为变量:
<?php echo $name; ?> has <?php echo $bars; ?> bars of chocolate.
如果要以原始格式访问数据,请将 传递给关联数组:
$data = $this->db->get('skaters')->result();
$this->load->view( 'playerslist', array('data' => $data) );
答案 1 :(得分:1)
根据您的问题和示例代码,我得出结论,您希望从表格“滑冰者”中检索数据并将其显示在视图中。
$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));
}