草庐IT

php - Symfony OAuth api FOSOAuthServerBundle : crash

coder 2024-04-27 原文

我正在尝试使用 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;
}

token 接口(interface)::设置用户:

 /**
     * @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!

有什么想法吗?

最佳答案

确保在 MP\OAuthBundle\Entity\AccessToken

中有以下两个use-statements
use Symfony\Component\Security\Core\User\UserInterface;
use FOS\OAuthServerBundle\Model\ClientUserInterface;

您必须确保 AccessToken 实现 FOS\OAuthServerBundle\Model\TokenInterface,其中包括具有相同接口(interface)的函数声明。

现在如果你有...

function setUser(UserInterface $user)

...在 AccessToken 中尝试实现 TokenInterface 但没有使用语句 ...

... UserInterface 将转换为 MP\OAuthBundle\Entity\UserInterface

... 但它必须是 Symfony\Component\Security\Core\User\UserInterface


结论

参数类型不匹配是 PHP 在这里提示两个函数声明不匹配的原因。

关于php - Symfony OAuth api FOSOAuthServerBundle : crash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17523012/

有关php - Symfony OAuth api FOSOAuthServerBundle : crash的更多相关文章

随机推荐