如何在 Cake Widget View 或 Template 中设置 Layout 变量

How can one set Layout variables in Cake Widget View or Template

我正在使用声明性 JavaScript 组件库,并尝试将其集成到蛋糕管理视图和模板中,特别是针对表单元素。

我遇到的问题是我需要将一个值从我的模板或视图传递到布局。我找不到任何关于如何在 CakePHP 3.x.

中实现此目的的文档

在 CakePHP 2.x 中很简单,您只需设置 $this->var_for_layout

您不会、不能也不应该在模板中为布局设置变量。

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

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

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

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

如果您想为布局设置模板中的 HTML 个片段,您还可以使用 View Blocks