我今天刚开始学习Yii并且不知道其中的任何内容,所以这个问题可能听起来很愚蠢。在yii中测试一些演示应用程序时,我遇到了此错误消息。
严格的标准:SiteController :: beforeAction()的声明应与C:\ wamp \ www \ protected \ controllers \ SiteController.php中的CController :: beforeAction($ action)兼容
任何人都可以帮助我,这里有什么问题以及如何解决这个问题。
这是beforeAction函数
protected function beforeAction(CAction $action) {
$user = Yii::app()->session->get('user');
/* is valid user check and assign user details to $user*/
Yii::app()->session->add('user',$user);
if(!isset($user)) {
//redirect(login page);
return false;
}
return true;
}
注意:我知道这不是学习新东西的正确方法,但我的时间有点短。所以请耐心等待。
答案 0 :(得分:2)
您正在扩展从CController
继承的方法,但参数列表不匹配。请注意,错误表明CController
允许传递$action
参数。这意味着当您扩展该方法时,它至少应该具有该参数。
这不是Yii特定的事情,而是PHP(严格标准)警告你。
对于与Yii相关的内容,请确保使用beforeAction($action)
方法执行以下操作之一:
protected function beforeAction($action)
{
...code...
return parent::beforeAction($action);
}
OR
protected function beforeAction($action)
{
if (!parent::beforeAction($action)) {
return false;
}
...code...
return true;
}
您使用哪种模式取决于您放置的...code...
,以及您想要将操作短路的位置(如果有的话)。请记住,除非您希望停止执行该操作,否则必须从此方法返回true。