当我尝试使用错误的控制器时,我收到此消息,并且我发现我没有从cakephp获得正确的错误我在2.0.0中得到了正确的错误:
现在,当我尝试使用错误的控制器时,我只收到这条消息:
Fatal error: Call to a member function Flash() on a non-object in
/srv/www/htdocs/web843/HTML/schaetzmal/lib/Cake/View/Layouts/default.ctp
on line 44
cakephp 2.0.3是否有错误,或者我错过了要安装的东西以便让我或其他什么工作?
答案 0 :(得分:5)
确保已将会话助手添加到公共$helpers
阵列。
class SomethingsController extends AppController {
public $helpers = array('Session');
}
或者您可以将其添加到a global AppController,以便会话助手可供所有控制器使用。
class AppController extends Controller {
public $helpers = array('Session');
}
答案 1 :(得分:0)
我发现AppController无法正常工作的问题。
就像mensch说我必须在我的AppController
中使用Session来表示全局,但这不是解决方案,因为cakephp的书中写道“a global AppController”
注意强> CakePHP将以下变量从AppController合并到应用程序的控制器:
- $ components
- $助手
- $用途
但它没有发生。因为我在公共变量$helpers
中覆盖它。
因此,我将父母给予一个并将其合并:
<?
class AppController extends Controller {
public $viewClass = 'Theme';
public $theme;
public function beforeFilter() {
parent::beforeFilter();
$this->theme = 'SM';
$this->helpers = array('Form','Html','Js');
}
}
?>
$this->helpers = array('Form','Html','Js');
执行合并,它运行正常。
谢谢你们
感谢帮助那些我需要的黑客