0

嘿,我是 joomla 的新手,正在制作一个名为 profile 的组件。我在文件夹控制器/setting.php 中遇到错误。这是我的代码;

类 ProfileControllerSetting 扩展 JControllerForm {

 function save(){
    parent::save();
    if($this->task=='save')     
    $this->setredirect('index.php?option=com_profile');
        }

 function cancel(){     
    $this->setredirect('index.php?option=com_profile');
  }

}

错误来了:Strict Standards: Declaration of ProfileControllerSetting::cancel() should be compatible with JControllerForm::cancel($key = NULL)

Strict Standards: Declaration of ProfileControllerSetting::save() should be compatible with JControllerForm::save($key = NULL, $urlVar = NULL) 

请帮我 。

4

2 回答 2

0

你的解释器已经告诉你了,你必须参数化你的函数。尝试类似:

class ProfileControllerSetting extends JControllerForm { 
     public function save($key = NULL){
        parent::save();
        if($this->task=='save')     
        $this->setredirect('index.php?option=com_profile');
    }

     public function cancel($key = NULL, $urlVar = NULL){     
        $this->setredirect('index.php?option=com_profile');
    }
}

由于您不能简单地重载 PHP 函数,因此您正在扩展类JControllerForm。所以你必须遵循函数 load 和 save 中声明的定义JControllerForm

于 2013-10-07T08:32:15.350 回答
0

对于 Joomla 3.6 方法 save 必须有两个参数

public function save($key = NULL, $urlVar = NULL) {
    parent::save();
    if($this->task=='save')     
      $this->setredirect('index.php?option=com_profile');
}
于 2016-07-20T09:04:52.860 回答