Codeigniter的视图中无法识别数组

时间:2013-02-26 12:06:16

标签: 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变量,如果它是一个数组?我该如何解决?

感谢。

3 个答案:

答案 0 :(得分: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;
}
?>

答案 1 :(得分:0)

你应该这样做

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

答案 2 :(得分: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;
}

?>

我认为这更好,你的选择。