Fatal error: Call to a member function assign()

#1 通和bruce

Fatal error: Call to a member function assign() on a non-object in F:\develop\APMServ-v5.2.6\APMServ-v5.2.6\APMServ5.2.6\www\htdocs\speedphp\SpeedPHP\Core\spController.php on line 81
为什么会出现这个问题啊。我的CONFIG文件没有配置错啊:
'view' => array( // 视图配置
                'enabled' => TRUE, // 开启视图
                'config' =>array(
                        'template_dir' => APP_PATH.'/tpl', // 模板目录
                        'compile_dir' => APP_PATH.'/tmp', // 编译目录
                        'cache_dir' => APP_PATH.'/tmp', // 缓存目录
                        'left_delimiter' => '<{',  // smarty左限定符
                        'right_delimiter' => '}>', // smarty右限定符
                        'auto_literal' => TRUE, // Smarty3新特性
                ),

2014-08-08 09:40:39

#2 jake

检查一下你的控制器的构造函数,和控制器的继承

1. 控制器是否已经继承spController,如果没有,请参考手册入门教程。
2. 控制器构造函数是否存在,要加上 parent::__construct(); 来启动父类。

2014-08-08 10:25:18

#3 通和bruce

jake 发表于 2014-8-8 10:25
检查一下你的控制器的构造函数,和控制器的继承

1. 控制器是否已经继承spController,如果没有,请参考手 ...
好了,我没有加 parent::__construct(); 怎么也可以啊?

2014-08-08 10:40:05

#4 jake

通和bruce 发表于 2014-8-8 10:40
好了,我没有加 parent::__construct(); 怎么也可以啊?
上面的提示是说你的代码调用了没有实例的方法,而这个smarty示例是在spController的__construct构造函数里面实例化的,因为你在继承的控制器里面覆盖了__construct,所以导致没办法执行父类的__construct。

所以在你的控制器的__construct里面,要调用一下父类的__construct。

2014-08-08 11:09:21