私はSymfony2.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
定義されている関数にはこの引数は必要ありません。より一般的には、私の質問は、メソッドを再定義/オーバーライドする方法と、FosUserで定義されたフィールドとメソッドに独自の制約を追加する方法です。どうもありがとう
この関数をオーバーライドするにはどうすればよいですか?試しparent::setUsername()
ましたが、解析エラーが発生しました:
PHP Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM, expecting '('