从控制器传递数组到视图 - Codeigniter

时间:2012-11-14 21:34:24

标签: php codeigniter undefined pass-data

我尝试在将数组传递给视图之前在控制器中打印数组,这是输出

Array ( [annunci] => Array ( [0] => stdClass Object ( [EmailDatore] => you@welcom.it [Nome] => asdasd [Cognome] => asdas [IdAnnuncio] => 9 [Titolo] => sfsdfdsfshrea [Testo] => agrefdgdagdfg [Categoria] => [Sede] => [TipoContratto] => [Add_Date] => [Drop_Date] => ) 
[1] => stdClass Object ( [EmailDatore] => you@welcom.it [Nome] => asdasd [Cognome] => asdas [IdAnnuncio] => 10 [Titolo] => fafa [Testo] => fafaerea asdasdas dafasfd [Categoria] => [Sede] => [TipoContratto] => [Add_Date] => [Drop_Date] => ) ) )

我在maincontroller中使用此方法获取数组

 public function get_annunci(){


    $query=$this->user_model->annunci($this->email);        
    print_r($query);        
    }

我想将此数组传递给视图,然后读取数据。所以我像这样重写我的方法

public function get_annunci(){
    $query=$this->user_model->annunci($this->email);        
    $this->load->view('main_view',$query);      
}

在主视图中我有这个

<div class="tab-pane active" id="annunci">
    <ul>
        <?php
        print_r($annunci);
        ?>
    </ul>
</div>

这是我的错误

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: annunci

Filename: views/tab_annunci_view.php

Line Number: 4

4 个答案:

答案 0 :(得分:4)

这是因为您尚未定义$ annunci并使其可用于视图。您需要先通过

将其加载到视图中

<强>控制器

$data['id'] = $yourArray;
$this->load->view('your_view_file', $data);

查看

 <?php print_r($id); ?> //prints $yourArray

答案 1 :(得分:1)

(将$query更改为$query ['annunci']) 好的,$query已经是一个数组,然后只需将视图文件更改为'tab_annunci_view'

所以:

public function get_annunci(){
    $query=$this->user_model->annunci($this->email);        
    $this->load->view('tab_annunci_view',$query);      
}

答案 2 :(得分:1)

public function get_annunci(){
    $query['annunci']=$this->user_model->annunci($this->email);        
    $this->load->view('main_view',$query);      
}

您正在传递数组,但您没有将annunci作为变量传递。

答案 3 :(得分:1)

FileStream

我希望这是可行的。 如果您处理n条记录,请使用此方法。