Php 将视图加载到视图中的CodeIgniter

Php 将视图加载到视图中的CodeIgniter,php,codeigniter,Php,Codeigniter,我需要将一个视图加载到CodeIgniter中的视图中,但似乎无法使其工作 我有一个循环。我需要将该循环放置在多个视图中相同的数据不同的页面。因此,我将循环本身作为一个视图,从控制器接收数组并显示数据 但问题是第二个视图无法使用该数组,它是空的 第二个视图加载良好,但数组$due\u check\u数据为空 因此,我尝试了很多方法,但根据文档,我可以做如下操作: 控制器: // gather data for view $view_data = array( 'loop' => $

我需要将一个视图加载到CodeIgniter中的视图中,但似乎无法使其工作

我有一个循环。我需要将该循环放置在多个视图中相同的数据不同的页面。因此,我将循环本身作为一个视图,从控制器接收数组并显示数据

但问题是第二个视图无法使用该数组,它是空的

第二个视图加载良好,但数组$due\u check\u数据为空

因此,我尝试了很多方法,但根据文档,我可以做如下操作:

控制器:

// gather data for view

$view_data = array(
   'loop' => $this->load->view('checks/include/due_checks_table', $due_check_data, TRUE),
   'check_cats' => $this->check_model->get_check_cats(),
   'page_title' => 'Due Checks & Tests'
);

$this->load->view('checks/due_checks',$view_data);
但是数组变量$due\u check\u data为空

我只是得到这个错误,说变量是空的

消息:未定义变量:到期检查数据


您缺少控制器似乎没有错误。亲自查看一些通知:

这仅在PHP>=5.4中可用

仅当您在php.ini文件中启用short open标记时,此选项才可用,但不建议您将$view\u数据数组传递给视图。然后,在您的视图中,您只能访问$view\u数据中包含的变量:

$loop $check_猫 $page\u标题 视图中没有变量due\u check\u数据

编辑

第一个视图包含在变量$loop中,因此您可以在第二个视图checks/due_checks中打印它:

回声循环

如果您真的想在第二个视图中使用$due\u check\u数据数组,为什么不直接传递它呢

$view_data = array(
   'loop' => $this->load->view('checks/include/due_checks_table', $due_check_data, TRUE),
   'check_cats' => $this->check_model->get_check_cats(),
   'page_title' => 'Due Checks & Tests',
   'due_check_data' => $due_check_data
);

$this->load->view('checks/due_checks',$view_data);

好的,我通过全局声明变量来解决这个问题,所以它们对所有视图都可用

        // gather data for view
        $view_data = array(
            'due_check_data' => $combined_checks,
            'check_cats'     => $this->check_model->get_check_cats(),
            'page_title'     => 'Due Checks & Tests'
        );

        $this->load->vars($view_data);
        $this->load->view('checks/due_checks');

你可以点击这个链接,是的,这不起作用。我仍然得到一个空变量。我认为问题在于将循环数组从控制器传递到视图是传递多个视图的问题吗?不,我可以很好地加载第二个视图,但在控制器内创建的数组无法传递到第二个视图,它的emptyFirst确保$combined_checks在controllershort处不为空,并且启用了标记,我已经尝试了使用和不使用
<? echo $due_check_data; ?>
$view_data = array(
   'loop' => $this->load->view('checks/include/due_checks_table', $due_check_data, TRUE),
   'check_cats' => $this->check_model->get_check_cats(),
   'page_title' => 'Due Checks & Tests',
   'due_check_data' => $due_check_data
);

$this->load->view('checks/due_checks',$view_data);
        // gather data for view
        $view_data = array(
            'due_check_data' => $combined_checks,
            'check_cats'     => $this->check_model->get_check_cats(),
            'page_title'     => 'Due Checks & Tests'
        );

        $this->load->vars($view_data);
        $this->load->view('checks/due_checks');