为什么这个模型没有返回任何值?

时间:2010-01-27 00:09:11

标签: php arrays codeigniter

我正在尝试使用CodeIgniter构建非常基本的模型 - > controller->视图结构。我宁愿使用模型(和模型函数,更重要的是)和控制器,而不是在每个视图中执行查询。

首先,这是模型:

class Leads extends Model {

    function Leads()
    {
        parent::Model();
    }

    function fetch_leads()
    {
        $query = $this->db->get('leads', 10);
        return $query->result();
    }

}

这是控制器,只有相关的功能是相关的功能:

function view()
{

    $this->load->model('Leads', '', TRUE);

    $data['query'] = $this->Leads->fetch_leads();

$this->load->view('html_head');
$this->load->view('leads/view', $data);
$this->load->view('html_foot');
}

我认为问题出在这一行,我可能无法正确地将数据传递给视图:

$data['query'] = $this->Leads->fetch_leads();

现在,视图:

print_r $data;

我提到基本的吗?我只是想让它拉出每个字段并从数据库中打印出来。是的,数据库配置正确,是的,数据库中有数据。

编辑:模型没有自动连接到数据库,所以我添加了该参数。该模型仍未返回值。

3 个答案:

答案 0 :(得分:2)

它不会像你那样工作。

return $query->result()会返回行数组。为了正确地传递此数组以进行查看,您需要这样做:

$view_data = array(
    'leads' => $leads,
);
$this->load->view('leads/view', $view_data);

在View中发生的是,所有$view_data数组元素都转换为本地(用于视图)变量。因此,您的控制器$view_data['leads']中的内容只会在您的视图中显示为$leads

答案 1 :(得分:0)

您必须将关联数组传递给$this->load->view()方法。

试试这个:

$leads = $this->Leads->fetch_leads();

$data["leads"] = $leads;

$this->load->view('html_head');

$this->load->view('leads/view', $data);

$this->load->view('html_foot');

答案 2 :(得分:0)

将数据传递给视图可能会出现问题。尝试将$leads放入数组中。

实施例。 $data['leads'] = $this->Leads->fetch_leads();