如何在Cake Widget视图或模板中设置Layout变量

时间:2019-04-15 02:43:27

标签: cakephp-3.7

我正在使用一个声明性JavaScript组件库,并试图将其集成到Cake Admin视图和模板中,特别是用于表单元素。

我遇到的麻烦是我需要将“模板”或“视图”中的值传递给布局。我在CakePHP 3.x中找不到有关如何实现此目标的任何文档。

在CakePHP 2.x中,这很容易,您只需设置$this->var_for_layout

2 个答案:

答案 0 :(得分:2)

您可以在模板中使用$this->set()来设置其他视图变量,这些变量将在您的布局中可用,这与在控制器中设置视图变量的原因相同。

如果您要为模板设置HTML片段作为布局,则也可以使用View Blocks

答案 1 :(得分:1)

您不能,不能也不应为模板中的布局设置变量。

如果您需要布局或模板中的数据,则需要在应用程序中进行设置并将其传递给视图层。

如果您需要布局中的数据,通常会在AppController中收集并设置数据,以便无论您的控制器操作如何,该数据始终可供布局使用。

大多数人使用AppController::beforeFilter方法。