在AppController->beforeRender()中,我会检查是否已经设置了一个视图变量,并查看它的值。在CakePHP 3.7中如何从控制器访问视图变量?这在以前的$this->viewVars['variable_name']中是可以实现的,但现在已经被弃用了。我尝试了$this->viewBuilder()->getVars(),但它返回一个空数组,当然还有视图变量。
AppController->beforeRender()
$this->viewVars['variable_name']
$this->viewBuilder()->getVars()
zdwk9cvp1#
从评论中总结出一个答案:这不是直接可能。通过viewBuilder()访问变量将不起作用,因为它只在构建视图时接收viewvar。封装要访问的变量的自定义元素可能是一种解决方案。最后,我将一些变量设置为默认值:在AppController->initialize()中,视图变量status被设置为"OK",其它控制器和方法然后可以简单地覆盖它。
viewBuilder()
AppController->initialize()
status
"OK"
k4ymrczo2#
使用Cakephp 4(我相信它也可以与C3一起使用)
$this->viewVars()['variable_name']
就可以了!
2条答案
按热度按时间zdwk9cvp1#
从评论中总结出一个答案:这不是直接可能。
通过
viewBuilder()
访问变量将不起作用,因为它只在构建视图时接收viewvar。封装要访问的变量的自定义元素可能是一种解决方案。
最后,我将一些变量设置为默认值:在
AppController->initialize()
中,视图变量status
被设置为"OK"
,其它控制器和方法然后可以简单地覆盖它。k4ymrczo2#
使用Cakephp 4(我相信它也可以与C3一起使用)
就可以了!