Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Codeigniter 为什么我的数据不能正确地传递到我的视图中?_Codeigniter_Variables - Fatal编程技术网

Codeigniter 为什么我的数据不能正确地传递到我的视图中?

Codeigniter 为什么我的数据不能正确地传递到我的视图中?,codeigniter,variables,Codeigniter,Variables,我有一个模型、视图和控制器没有正确交互,我不知道错误在哪里 首先是控制器。根据,我在这里正确地传递了变量 function view() { $html_head = array( 'title' => 'Estimate Management' ); $estimates = $this->Estimatemodel->get_estimates(); $this->load->view('html_head',

我有一个模型、视图和控制器没有正确交互,我不知道错误在哪里

首先是控制器。根据,我在这里正确地传递了变量

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');
    }
型号(短而甜):

最后是视图,只是为了打印用于初始开发目的的数据:

<? print_r($estimates); ?>


现在,当我导航到此页面时,它是未定义的。但是,我知道$query是定义的,因为当我直接在视图中运行模型代码时,它会工作。

文档显示传递给视图的对象必须是关联数组

$data = array(
   'estimates' => $estimates
);

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

您正在加载返回的
$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);

差不多两年后,我又回到了这篇文章,它帮助我在一个我正在从事的codeigniter项目中再次解决了这个问题……太棒了!
$this->load->view('estimates/view', array('estimates' => $estimates));
$html_head = array( 'title' => 'Estimate Management' );
$this->load->view('html_head', $html_head);