我正在从1.3迁移到2.0.6并遇到以下问题:
注意(8):未定义的变量:session [APP / View / Users / login.ctp,line 2]
致命错误:在第2行的login.ctp中的非对象上调用成员函数flash()
为什么访问会话助手时出现问题?
答案 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 - 了解有关更改内容的更多信息。