我在Plugin控制器中设置了一个viewVar。在渲染之前我调试($ this-> viewVars)以检查相关变量是否在数组中(它是)。
我设置的变量是私有类变量,但我也尝试创建它的本地副本,并使用set(compact())表单来设置变量。
所以我的问题不是语法。
当我在视图中调试变量时,我发现它没有定义。我的主应用程序AppController中设置的变量正确传递给视图。
如果我在整个应用程序的各个点调试viewVars,我会看到
如果我在我的主AppController中设置变量(在过滤器之前),那么它将出现在我的最终视图输出中。
如果我在我的插件中添加'beforeRender'方法进行调试($ this-> viewVars),它只显示在主AppController中设置的变量,而不是我插件中的变量。
如何从插件Controller中获取变量以设置为视图变量?
答案 0 :(得分:0)
问题在于controller callbacks中的事件序列。
我在插件beforeFilter()方法中愚蠢地调用了一个渲染命令。这应该在afterFilter()方法中完成。移动它解决了这个问题。