我的模型,视图和控制器没有正确交互,我不知道错误在哪里。
首先是控制器。根据{{3}},我在这里正确传递变量。
function view() {
$html_head = array( 'title' => 'Estimate Management' );
$estimates = $this->Estimatemodel->get_estimates();
$this->load->view('html_head', $html_head);
$this->load->view('estimates/view', $estimates);
$this->load->view('html_foot');
}
模特(短而甜):
function get_estimates() {
$query = $this->db->get('estimates')->result();
return $query;
}
最后是视图,只是为了初始开发目的而打印数据:
<? print_r($estimates); ?>
现在导航到此页面时未定义。但是,我知道定义了$ query,因为它在我直接在视图中运行模型代码时起作用。
答案 0 :(得分:2)
文档显示传递给视图的对象必须是关联数组。
$data = array(
'estimates' => $estimates
);
$this->load->view('estimates/view', $data);
答案 1 :(得分:2)
$estimates = $this->Estimatemodel->get_estimates();
$this->load->view('estimates/view', $estimates);
您正在加载$this->Estimatemodel->get_estimates()
作为视图变量数组的返回值。换句话说,$estimates
的所有子项(假设它可以被视为数组)在您的视图中可用。但不是父元素。
这里的关键是加载视图时第二个参数需要是一个值数组,而不仅仅是一个值。
$this->load->view('estimates/view', array('estimates' => $estimates));
那应该得到你正在寻找的结果,事实上,你已经在为html标题视图做了这个。即使该视图只有一个变量,它也作为数组的单个元素传递:
$html_head = array( 'title' => 'Estimate Management' );
$this->load->view('html_head', $html_head);