我正在使用一个声明式JavaScript组件库,并尝试将其集成到蛋糕管理视图和模板中,特别是表单元素。
我遇到的麻烦是我需要将值从我的模板或视图传递到布局。我找不到任何关于如何在 CakePHP 3.x 中实现这一点的文档。
在CakePHP 2.x中,这很容易,您只需要设置$this->var_for_layout
即可。
模板中的$this->set()
来设置其他视图变量,这些变量将在布局中可用,就像控制器中设置的视图变量一样。
如果要从模板为布局设置 HTML 片段,也可以使用视图块。
您没有、不能也不应该为模板中的布局设置变量。
如果需要布局或模板中的数据,则需要在应用程序中设置数据并将其传递到视图层。
如果您需要布局中的数据,通常会在 AppController 中收集并设置这些数据,以便无论您的控制器操作如何,它始终可用于布局。
大多数人使用AppController::beforeFilter
方法。