我创建了扩展FOSOAuthServerBundle的客户端。该客户端的代码如下:
<?php
namespace AcmeApiBundleEntity;
use FOSOAuthServerBundleEntityClient as BaseClient;
use DoctrineORMMapping as ORM;
/**
* Class Client
*
* @package AcmeApiBundleEntity
*
* @ORMTable("oauth2_clients")
* @ORMEntity
*/
class Client extends BaseClient
{
/**
* @ORMId
* @ORMColumn(type="integer")
* @ORMGeneratedValue(strategy="AUTO")
*/
protected $id;
protected $name;
public function __construct()
{
parent::__construct();
}
public function setName($name)
{
$this->name = $name;
}
public function getName()
{
return $this->name;
}
}
所以,正如我所说的,我扩展了FOSOAuthServerBundle,它具有$randomId (friendsofsymfonyoauth-server-bundleEntityClient.php,第28行)。现在我得到一个错误:
MappingException .php第565行:在字段或标识符列映射中,在实体"AcmeApiBundle entity Client"上重复列"random_id"的定义。
我哪里出错了?
当我使用FOSOAuthServerBundleEntityClient
时,我使用了一个扩展另一个目标类(FOSOAuthServerBundleModelClient
)的类。有一些目标变量,比如$RandomId,我发现它是重复的。因此,根据我的观点,当AcmeApiBundleEntityClient
扩展FOSOAuthServerBundleEntityClient
扩展FOSOAuthServerBundleModelClient
时,我们获得了两次变量,而不是一次。所以我决定直接扩展FOSOAuthServerBundleModelClient
,它解决了我的问题。有人能解释一下为什么用这种方式写代码是不可能的吗?