首页 文章

CodeIgniter将数据传递给视图

提问于
浏览
1

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

public function playerslist()
    {
        $this->load->database();
        $data = $this->db->get('skaters');
        $this->load->helper('url');
        $this->load->view('playerslist', $data);
    }

在我看来......

<?php echo $data; ?>

但我得到了 error...

遇到PHP错误严重性:通知消息:未定义变量:data文件名:views / playerslist.php行号:76

我究竟做错了什么?

我想对这些数据做什么放在foreach语句中并显示$ data数组中的所有内容

foreach($data as $value => $key){
echo $key . "
"; }

谢谢,J

2 回答

  • 1

    您无法直接从视图中访问 $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) );
    
  • 6

    根据您的问题和示例代码,我得出结论,您希望从表'滑冰者'中检索数据并在视图中显示它 .

    $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));
         }
    

相关问题