将一个变量从视图传递到CakePHP中的布局 - 或者将此逻辑放在何处?

Dun*_*zzz 3 php cakephp variable-assignment cakephp-1.3

我想$pageWidgets在我的视图中填充一个数组,这样我就可以控制我的侧边栏中显示的小部件以及我的布局中的哪些信息,但是从我的视图中可以看出.我唯一的问题是布局似乎在视图(或其他一些块)之前进行了解析,但它无法正常工作.

很简单,我的$pageWidgets数组包含一个带有元素名称和模型数据值的键(即:$pageWidgets['product_meta'] = $product;主要布局只是循环遍历此数组并填充侧边栏.

我的应用程序处于初期阶段,因此任何其他注册页面小部件的方法都将被认真对待,但它似乎使得这些数据在视图中.

我正在使用CakePHP 1.3.

YOM*_*les 5

我实际上使用相同的技术用于相同的目的.但是,您必须在视图中设置数组,如下所示:

$this->set('widgetsToRender', array(foobar));
Run Code Online (Sandbox Code Playgroud)

然后,在您的布局或元素文件中,您可以使用该数组.例:

<?php
if (in_array('some_widget', $widgetsToRender)):
// do whatever
Run Code Online (Sandbox Code Playgroud)

您还可以在相关布局或元素中为此数组设置默认值,例如:

if (empty($widgetsToRender)) {
    $widgetsToRender = array(default value);
}
Run Code Online (Sandbox Code Playgroud)