我有一个控制器,包括一个函数的两个视图,如下所示
$this->load->view('includes/header',$data);
$this->load->view('view_destinations',$data);
视图文件view_destinations.php
包括一个php菜单文件,如下所示
<? $this->load->view('includes/top_menu'); ?>
我的问题是,如何将从控制器获取的数据传递给包含top_menu.php
的数据?
谢谢你们
答案 0 :(得分:25)
在控制器内部,
$data['nestedView']['otherData'] = 'testing';
在你的观点包含之前。
致电时
$this->load->view('view_destinations',$data);
view_destinations
文件将具有
$nestedView['otherData'];
此时您可以将其传递到嵌套视图文件中。
<? $this->load->view('includes/top_menu', $nestedView); ?>
在top_menu文件中,您应该$otherData
包含'testing'。
答案 1 :(得分:5)
castis的解决方案
但是如果您想在更细粒度的级别上执行此操作,则可以使用:
//in your controller
$data['whatever'] = 'someValue';
//In your view
echo $whatever //outputs 'someValue';
//pass $whatever on
$this->load->view('some/view', Array('whatever' => $whatever));
答案 2 :(得分:1)
此Codeigniter论坛帖子可以帮助您;)
你可以让你的$ data(example)在控制器中全局化,或者像你在视图中提到的@castis那样传递(仅在你视图中的变量)
答案 3 :(得分:1)
我在视图文件中看到过,如果我将数据从控制器传递到视图,并从该视图传递到包含嵌套视图文件。没有必要转移
$数据
对于您的嵌套视图,它已经可用。您可以在内部视图中直接访问它。
答案 4 :(得分:1)
如果您希望子视图中的每个CodeIgniter视图数据,请尝试此操作:
echo $this->view('subview', get_defined_vars()['_ci_data']['_ci_vars'])