codeigniter:将数据传递给视图中包含的视图

时间:2010-12-01 14:58:10

标签: php codeigniter

我有一个控制器,包括一个函数的两个视图,如下所示

$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的数据?

谢谢你们

5 个答案:

答案 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那样传递(仅在你视图中的变量)

此处有更多详情: http://codeigniter.com/forums/viewthread/88335/

答案 3 :(得分:1)

我在视图文件中看到过,如果我将数据从控制器传递到视图,并从该视图传递到包含嵌套视图文件。没有必要转移

  

$数据

对于您的嵌套视图,它已经可用。您可以在内部视图中直接访问它。

答案 4 :(得分:1)

如果您希望子视图中的每个CodeIgniter视图数据,请尝试此操作:

echo $this->view('subview', get_defined_vars()['_ci_data']['_ci_vars'])