【问题标题】:Codeigniter passing data from controller to view /w complex arraysCodeigniter 从控制器传递数据以查看 /w 复杂数组
【发布时间】:2014-06-30 13:18:29
【问题描述】:

检查这是否是重复的,它看起来是这样,但我发现的其他问题没有回答这个问题。

我正在使用 CodeIgniter,我想在我的视图中访问一个“复杂”数组(来自 db)。

Codeigniter passing data from controller to view 该链接回答了我的部分问题,但它是一个简单的数组,如下所示:

在控制器中:

$data = array(
    'title' => 'title 1',
    'user' => 'user 1'
);
$this->layout->view('example/test', $data);

在视图中

echo $title.$user;

所以我确实得到了所有这些,但是如果数组更复杂一点,比如:

$data = array(
   array(
    'title' => 'title 1',
    'user' => 'user 1'
   ),
   array(
    'title' => 'title 2',
    'user' => 'user 2'
   )
);

如何在我的视图中访问这种数组?

【问题讨论】:

  • 你在视图方法中传递了$data。这不是实际的数组,这个数组所有的字母数字键都是指视图变量。

标签: php arrays codeigniter


【解决方案1】:

你应该包装外部数组并给它一个这样的键

$data = array(
   'myAwesomeArray' => array(
       array(
        'title' => 'title 1',
        'user' => 'user 1'
       ),
       array(
        'title' => 'title 2',
        'user' => 'user 2'
       )
   )
);

您应该能够使用 $myAwesomeArray 访问视图中的数据

【讨论】:

    【解决方案2】:

    在控制器中使用它:

    $data = array(
                       array(
                        'title' => 'title 1',
                        'user' => 'user 1'
                       ),
                       array(
                        'title' => 'title 2',
                        'user' => 'user 2'
                       )
                    );
            $content = array('data'=> $data);
    $this->layout->view('example/test', $data);
    

    在视图文件中:

    foreach($data as $key=>$val)
    {
      echo  $val['title'].$val['user'];
    }
    

    【讨论】:

    • 这个也很好。我想我会结合这两个答案。
    【解决方案3】:

    你可以试试这个:

        $data['content'] = array(
                      array(
                            'title' => 'title 1',
                             'user' => 'user 1'
                            ),
                      array(
                             'title' => 'title 2',
                              ' user' => 'user 2'
                             )
                     );
    
    $this->load->view('example/test',$data);
    

    在视图中:

     foreach($content as $value)://to traverse the data array ....
    
     endforeach;
    

    【讨论】:

      猜你喜欢
      • 2012-09-02
      • 2012-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-27
      • 2021-04-19
      相关资源
      最近更新 更多