1

我试图从我的控制器传递到视图,就像这样......

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

4

2 回答 2

7

您无法$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) );
于 2013-01-11T01:44:37.417 回答
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));
     }
于 2013-01-11T02:09:59.347 回答