我需要将视图加载到CodeIgniter中的视图中,但似乎无法使其工作。
我有一个循环。我需要将该循环放在多个视图中(相同的数据不同的页面)。因此,作为一个视图,我自己拥有循环,从控制器接收数组并显示数据。
但问题是数组不可用于第二个视图,它是空的
第二个视图加载正常,但数组if (arr.length == users.length) {
为空
所以,我尝试了很多东西,但根据文档,我可以做这样的事情:
控制器:
$due_check_data
但是数组变量// 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_check_data
答案 0 :(得分:1)
您正在将$view_data
数组传递给您的视图。然后,在您的视图中,您只能访问$view_data
中包含的变量:
$loop
$check_cats
$page_title
视图中没有变量due_check_data
。
修改强>
第一个视图包含在变量$loop
中,因此您只需在第二个视图中打印它(检查/ due_checks):
echo $loop;
如果您真的想在第二个视图中使用$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);
答案 1 :(得分:0)
您缺少<?php
。应该是这样的
<?php echo $due_check_data; ?>
答案 2 :(得分:0)
控制器似乎没有错误。自己查看一些通知:
<?=$due_check_data?>
仅适用于 PHP&gt; = 5.4
<? echo $due_check_data; ?>
仅当您在 php.ini 文件中启用短开标记但不建议
时才可用答案 3 :(得分:-1)
好的,我设法通过全局声明变量来解决这个问题,因此所有视图都可以使用它们。
// 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');