3

FOSOAuthServerBundle を使用しようとしていますが、クラッシュの問題が発生しています。クラッシュ メッセージは次のとおりです。

PHP Fatal error:  Declaration of MP\OAuthBundle\Entity\AccessToken::setUser() must be compatible with that of FOS\OAuthServerBundle\Model\TokenInterface::setUser() in /home/bitnami..../OAuthBundle/Entity/AccessToken.php on line 13

AccessToken.class:

<?php

namespace MP\OAuthBundle\Entity;

use FOS\OAuthServerBundle\Entity\AccessToken as BaseAccessToken;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="oauth_access_tokens")
 */
class AccessToken extends BaseAccessToken
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\ManyToOne(targetEntity="Client")
     * @ORM\JoinColumn(nullable=false)
     */
    protected $client;

    /**
     * @ORM\ManyToOne(targetEntity="\MP\UserBundle\Entity\User")
     */
    protected $user;
}

TokenInterface::setUser:

 /**
     * @param UserInterface $user
     */
    function setUser(UserInterface $user);

ユーザークラス

namespace MP\UserBundle\Entity;

use Symfony\Component\Security\Core\User\UserInterface;
use Doctrine\ORM\Mapping as ORM;
use FOS\UserBundle\Model\User as BaseUser;


/**
 * User
 */
class User extends BaseUser
{
    const ROLE_ADMIN = 'ROLE_ADMIN';

    /**
     * @var integer
...

どこに問題があるのか​​、まだわかりません。私のユーザーは最後に UserInterface を実装しています!

何か案が?

4

2 に答える 2

2

問題はAccess tokenクラス内にあります。おそらくsetUser()メソッドをオーバーライドし (ここに貼り付けずに)、Symfony\Component\Security\Core\User\UserInterfaceuse ステートメントを追加しません。あなたのクラスは最初で最後に FOS をオーバーライドするので、他に方法はありませんFOS\OAuthServerBundle\Model\AccessToken

この関数定義をクラスから削除するか、use ステートメントを修正します

于 2013-07-15T09:43:44.280 に答える