1

我正在使用 Symfony 2.0。

我有一个从 BaseUser 扩展的 Employee 类

我需要覆盖setUsername方法(除其他外):

我的方法是 Employee.php 是这样的:

public function setUsername()
{
    $name=$this->getName();

    $this->username=($name);//just an example
}

但是当我清除缓存时出现错误:

MyBundle\Entity\Employee::setUsername() must be compatible with that of FOS\UserBundle\Model\UserInterface::setUsername()

编辑:
我已经看到 FOS\UserBundle\Model\UserInterface 中的方法 setUsername 需要$username参数,但是我setUsername定义的函数不需要这个参数。更一般地说,我的问题是如何重新定义/覆盖方法以及如何将他自己的约束添加到 Fos User 中定义的字段和方法中。非常感谢

如何覆盖此功能?我试过parent::setUsername()但我有一个解析错误:

PHP Parse error:  syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM, expecting '('
4

1 回答 1

0

函数定义为:

function setUsername($username);

因此,您的功能必须相同,但您的功能缺少参数。添加它,你应该没问题。

这实际上与 Symfony2 或 FOS Bundle 无关,这就是 PHP 通常的工作方式。所以试着更正确地理解错误信息。并且下次看到你不完全理解的错误信息时,具体询问错误信息和你不清楚的部分。只是说:直接询问您了解的部分。与您尝试做的部分无关(尝试并没有错,只是说,我们都在边做边学。但关键是要提出正确的问题;))

于 2012-07-19T21:07:53.393 回答