2013-02-26 59 views
0

我試圖從一個控制器傳遞一個數組到視圖,但我不能,也不知道爲什麼。在Codeigniter的視圖中無法識別陣列

我有一個模型,一個控制器和一個視圖。

模型:

<?php 

class Modelo_bd extends CI_Model 
{ 
    public function datos() 
    { 
     $cnb=$this->db->query("SELECT * from anuncios"); 
     return $cnb->result(); 
    } 
} 

?> 

控制器:

if($this->modelo_usuarios->puede_entrar($usr)) 
{ 
    $this->load->model("modelo_bd"); 
    $cbd=$this->modelo_bd->datos(); 
    $this->load->view('datos',$cbd); 

    return true; 
} 

的視圖:

<?php 
echo $cbd->titulo_a; 
echo $cbd->contenido; 
?> 

的錯誤是在視圖中。

A PHP Error was encountered 
Severity: Notice 
Message: Undefined variable: cbd 

A PHP Error was encountered 
Severity: Notice 
Message: Trying to get property of non-object 

爲什麼$ cbd變量在視圖中無法識別,如果它是數組?我該如何解決它?

謝謝。

回答

0

不該你寧願做:

控制器:

if($this->modelo_usuarios->puede_entrar($usr)) 
{ 
    $this->load->model("modelo_bd"); 
    $data['cbd']=$this->modelo_bd->datos(); 
    $this->load->view('datos',$data); 

     return true; 
} 

的觀點:

<?php 
    foreach($cbd as $key => $row){ 
    echo $row->titulo_a; 
    echo $row->contenido; 
} 

?> 

我覺得這工作得更好,你的選擇。

+0

是的。現在運行。謝謝回答。 – axmug 2013-02-27 09:57:51

+0

謝謝,很高興知道我可以幫忙 – 2013-02-27 12:33:24

1

控制器

if($this->modelo_usuarios->puede_entrar($usr)) 
{ 
    $this->load->model("modelo_bd"); 
    $cbd=$this->modelo_bd->datos(); 
    $this->load->view('datos', array('cbd' => $cbd);  
    return true; 
} 

第二個參數應該是數組。

您可以在模型中使用:

public function datos() 
{ 
    return $this->db->query("SELECT * from anuncios"); 
} 

,並在視圖:

<?php 
foreach ($cdb->result() as $item) { 
    echo $item->titulo_a; 
    echo $item->contenido; 
} 
?> 
+0

是的。如果我輸入echo $ cbd [0] - > titulo_a echo $ cbd [0] - > contenido,它將起作用。但是,如果我使用foreach:foreach($ cbd-> result()as $ f){echo $ f-> titulo_a; echo $ f-> contenido; }有一個錯誤:致命錯誤:調用一個非對象的成員函數result()。我該如何解決這個問題? – axmug 2013-02-26 12:53:08

+0

$ cbd已經是結果對象。檢查你的模型。 – AquilaX 2013-02-26 12:55:22

0

你應該做這樣的

if($this->modelo_usuarios->puede_entrar($usr)) 
{ 
    $this->load->model("modelo_bd"); 
    $data['cbd'] = $this->modelo_bd->datos(); 
    $this->load->view('datos',$data); 
}