帮助器在视图中不可用

时间:2015-10-05 15:16:13

标签: php cakephp cakephp-2.0

我正在从1.3迁移到2.0.6并遇到以下问题:

  

注意(8):未定义的变量:session [APP / View / Users / login.ctp,line 2]

     

致命错误:在第2行的login.ctp中的非对象上调用成员函数flash()

为什么访问会话助手时出现问题?

1 个答案:

答案 0 :(得分:2)

这不是如何使用助手

  

注意(8):未定义的变量:session [APP / View / Users / login.ctp,line 2]

     

致命错误:在login.ctp

中的非对象上调用成员函数flash()

虽然问题不在于login.ctp模板看起来像这样:

<?php
echo $session>flash(); # line 2

那是 how helpers are expected to be used in CakePHP 2.x

  

您可以通过访问以。命名的对象在视图中使用[助手]   助手:

<!-- make a link using the new helper -->
<?php echo $this->Link->makeEdit('Change this Recipe', '/recipes/edit/5'); ?>

您正在寻找的代码是:

# echo $session->flash(); # wrong
echo $this->Session->flash(); # right

另请注意,Session必须位于controller $helpers array

在1.2和早期版本的CakePHP中,助手应该是变量this changed but was still supported in 1.3。如果您的1.3 CakePHP应用程序以这种方式使用帮助程序,它一直依赖于与早期版本的向后兼容性。在2.0中,助手不是变量,只能作为视图类属性进行访问。请务必阅读the migration guides - 了解有关更改内容的更多信息。