CakePHP 3.7 - 从控制器访问视图变量
CakePHP 3.7 - Access view variable from controller
在 AppController->beforeRender()
内部,我会检查视图变量是否已设置并查看其值。
如何从 CakePHP 3.7 中的控制器访问视图变量?
这曾经可以通过 $this->viewVars['variable_name']
实现,但已被弃用。
我试过 $this->viewBuilder()->getVars()
但是 returns 一个空数组,当然还有视图变量。
从评论中总结一个答案:这不是直接可能的。
通过 viewBuilder()
访问变量将不起作用,因为它仅在构建视图时接收 viewvars。
封装要访问的变量的自定义元素可能是一个解决方案。
我最后将一些变量设置为默认值:在 AppController->initialize()
中,视图变量 status
设置为 "OK"
,然后其他控制器和方法可以简单地覆盖它。
使用 Cakephp 4(我相信它也适用于 C3)
$this->viewVars()['variable_name']
会成功的!
在 AppController->beforeRender()
内部,我会检查视图变量是否已设置并查看其值。
如何从 CakePHP 3.7 中的控制器访问视图变量?
这曾经可以通过 $this->viewVars['variable_name']
实现,但已被弃用。
我试过 $this->viewBuilder()->getVars()
但是 returns 一个空数组,当然还有视图变量。
从评论中总结一个答案:这不是直接可能的。
通过 viewBuilder()
访问变量将不起作用,因为它仅在构建视图时接收 viewvars。
封装要访问的变量的自定义元素可能是一个解决方案。
我最后将一些变量设置为默认值:在 AppController->initialize()
中,视图变量 status
设置为 "OK"
,然后其他控制器和方法可以简单地覆盖它。
使用 Cakephp 4(我相信它也适用于 C3)
$this->viewVars()['variable_name']
会成功的!