【问题标题】:Why isn't this model returning any values?为什么这个模型不返回任何值?
【发布时间】:2010-01-27 00:09:10
【问题描述】:

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

首先,这是模型:

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;

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

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

【问题讨论】:

  • 您可以给出任何错误或警告吗?
  • 如何开启错误记录?

标签: php arrays codeigniter


【解决方案1】:

它不会像你那样工作。

return $query->result() 确实返回一个行数组。为了正确传递这个数组来查看你需要这样做:

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

在视图中发生的事情是,所有$view_data 数组元素都被转换为本地(对于视图)变量。因此,您的控制器中的 $view_data['leads'] 在您的视图中变成了 $leads

【讨论】:

  • 是的,+1 :) :)(使用微笑来填充所需的字符)
【解决方案2】:

您将数据传递给视图的方式可能存在问题。尝试将$leads 放入一个数组中。

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

【讨论】:

    【解决方案3】:

    您必须将关联数组传递给$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');

    【讨论】:

      猜你喜欢
      • 2021-04-30
      • 2020-09-28
      • 2015-11-03
      • 2018-01-24
      • 1970-01-01
      • 1970-01-01
      • 2023-02-07
      • 1970-01-01
      相关资源
      最近更新 更多