繁体   English   中英

Symfony2 - 为FOSOAuthServerBundle使用yml

[英]Symfony2 - Using yml for FOSOAuthServerBundle

我正在尝试使用symfony2中的FOSOAuthServer包创建一个Web服务。

我正在使用yml配置; 所以我像这样为AcccessToken创建实体:

阳明:

My\ApiBundle\Entity\AccessToken:
    type:  entity
    table: access_token
    id:
        id:
            type: integer
            generator:
                strategy: AUTO

    manyToOne:
        client:
            targetEntity: Client
            inversedBy: access_tokens
            joinColumn:
                name: client_id
                referencedColumnName: id
                nullable: false

        user:
            targetEntity: User
            inversedBy: access_tokens
            joinColumn:
                name: user_id
                referencedColumnName: id

实体:

<?php

namespace My\ApiBundle\Entity;

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

/**
 * AccessToken
 */
class AccessToken extends BaseAccessToken
{
    /**
     * @var integer
     */
    protected $id;


    /**
     * @var \My\ApiBundle\Entity\Client
     */
    protected $client;


    /**
     * @var \My\ApiBundle\Entity\User
     */
    protected $user;



    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set client
     *
     * @param \My\ApiBundle\Entity\Client $client
     * @return AccessToken
     */
    public function setClient(\My\ApiBundle\Entity\Client $client)
    {
        $this->client = $client;

        return $this;
    }

    /**
     * Get client
     *
     * @return \My\ApiBundle\Entity\Client 
     */
    public function getClient()
    {
        return $this->client;
    }

    /**
     * Set user
     *
     * @param \My\ApiBundle\Entity\User $user
     * @return AccessToken
     */
    public function setUser(\My\ApiBundle\Entity\User $user = null)
    {
        $this->user = $user;

        return $this;
    }

    /**
     * Get user
     *
     * @return \My\ApiBundle\Entity\User 
     */
    public function getUser()
    {
        return $this->user;
    }
}

现在,当我再次运行generate entities命令时,它会抛出此错误。

致命错误:我的\\ ApiBundle \\ Entity \\ AccessToken :: setUser()声明必须与D:\\中的FOS \\ OAuthServerBundle \\ Model \\ TokenInterface :: setUser(Symfony \\ Component \\ Security \\ Core \\ User \\ UserInterface $ user)兼容第12行的xampp \\ htdocs \\ oauth \\ src \\ My \\ ApiBundle \\ Entity \\ AccessToken.php

我究竟做错了什么? 我正在关注这里的文档。

您不能破坏setUser方法定义(在接口中定义)。 它必须与TokenInterface中的完全相同。

更改:

public function setUser(\My\ApiBundle\Entity\User $user = null)

至:

public function setUser(\Symfony\Component\Security\Core\User\UserInterface $user = null)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM