Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP:如何在所有视图中直接在布局文件中显示相同的查询数据_Php_Cakephp_Cakephp 3.0 - Fatal编程技术网

CakePHP:如何在所有视图中直接在布局文件中显示相同的查询数据

CakePHP:如何在所有视图中直接在布局文件中显示相同的查询数据,php,cakephp,cakephp-3.0,Php,Cakephp,Cakephp 3.0,我正在用CakePHP创建一个网站;现在的问题是,我想在网站页脚(在所有页面上都可见)显示查询结果(例如“最受欢迎的产品”) 使用CakePHP实现这一目标的正确方法是什么? 目前,我在我的产品控制器中创建了一个mostPopularList(),以及一个最受欢迎列表.ctp视图,该视图只输出一个列表,我想这样我就可以在布局中包含该文件的输出(default.ctp),但我没有找到CakePHP方法来实现这一点 谢谢 使用视图单元格或调用AppController beforeRender()回

我正在用CakePHP创建一个网站;现在的问题是,我想在网站页脚(在所有页面上都可见)显示查询结果(例如“最受欢迎的产品”)

使用CakePHP实现这一目标的正确方法是什么?

目前,我在我的产品控制器中创建了一个
mostPopularList()
,以及一个
最受欢迎列表.ctp
视图,该视图只输出一个
列表,我想这样我就可以在布局中包含该文件的输出(
default.ctp
),但我没有找到CakePHP方法来实现这一点


谢谢

使用视图单元格或调用AppController beforeRender()回调中的查询,并将其设置为视图。摘自文件:

视图单元是小型控制器,可以调用视图逻辑并渲染出模板。它们为requestAction()提供了一个轻量级的模块化替代品。细胞的概念是从Ruby中的细胞借用来的,在Ruby中,细胞扮演着类似的角色和目的


如果每个页面都需要这样做,我可能会选择beforeRender()回调,这很容易做到,而且可以在全局范围内进行更改。

非常感谢,我学到了一些新的但不可或缺的东西!我尝试了这两种方法,它们都奏效了:)最后我选择使用一个电池,以保持一切更干净。