为什么重写Doctrine_Record :: save()会在Symfony 1.2中给出严格的标准错误?

时间:2009-06-03 06:23:35

标签: php symfony1 doctrine

我有以下型号:

class Model extends BaseModel
{
   public function save($conn = null)
   {
      if(!$this->getId())
      {

        //do stuff

     }
     return parent::save($conn);

    }
}

我觉得我正在使用Doctrine_Record::save()签名的API描述(除了奇怪的括号,我会给我一个语法错误......)。

当我运行此代码时,效果正常,但我收到以下警告:

Strict Standards: Declaration of Model::save() should be compatible with that of Doctrine_Record::save() in $ROOT/lib/model/doctrine/Model.class.php on line 6

我通常会将错误报告转为ERROR_ALL,并尝试使用免费警告代码。这让我很烦。我查看了所有的Doctrine源代码并且greped“save(”,在它上面,在另一个之后尝试一个签名。没什么。第一次PHP让我过于宽容,奇怪的胡:-)?

2 个答案:

答案 0 :(得分:16)

保存方法的正确签名应为:

public function save(Doctrine_Connection $conn = null)

答案 1 :(得分:0)

旁注:在其他功能上,您可能会收到此错误,但您需要使用函数($ event)代替上述内容。