Php Symfony 2/条令2:同一表格中有两个实体,使用一个实体代替另一个实体
在我的Symfony2应用程序中,我将大部分实体提取到一个单独的库中,并使用composer安装该库 这个库不依赖于Symfony2(但依赖于条令,因为我使用注释),因为我也想在其他非Symfony2项目中使用它 该库包含一个Php Symfony 2/条令2:同一表格中有两个实体,使用一个实体代替另一个实体,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,在我的Symfony2应用程序中,我将大部分实体提取到一个单独的库中,并使用composer安装该库 这个库不依赖于Symfony2(但依赖于条令,因为我使用注释),因为我也想在其他非Symfony2项目中使用它 该库包含一个ClientUser实体,该实体映射到一个client\u users表。在我的Symfony2应用程序中,我希望使用相同的ClientUser实体进行身份验证。这需要我实现Symfony\Component\Security\Core\User\UserInterface
ClientUser
实体,该实体映射到一个client\u users
表。在我的Symfony2应用程序中,我希望使用相同的ClientUser
实体进行身份验证。这需要我实现Symfony\Component\Security\Core\User\UserInterface
问题是,我想要一个ClientUser
实体的“Symfony2不可知”和“Symfony感知”实现(两者都应该映射到同一个表)。我试图从ClientUserAbstract实体扩展这两个类,但没有成功
<?php
namespace My\Library\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\MappedSuperClass
*/
class ClientUserAbstract {
// all my fields here
}
以防其他人有此问题,以下是我的评论转换为答案:
对于给定的实体管理器,严格来说每个表只有一个实体。您需要创建第二个实体管理器并将其用于身份验证
当然,我也喜欢获得代表。对于给定的实体经理,严格来说,每个表只有一个实体。您需要创建第二个实体管理器并将其用于身份验证。@谢谢,我使用第二个实体管理器解决了这个问题。
<?php
namespace My\Library\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
*/
class ClientUser extends ClientUserAbstract {
// nothing here, it's empty
}
<?php
namespace Vendor\Bundle\MyBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\User\UserInterface;
/**
* @ORM\Entity
*/
class ClientUser extends ClientUserAbstract implements UserInterface {
// all methods that Symfony requires because of the UserInterface here:
public function getRoles();
public function getPassword();
public function getSalt();
public function getUsername();
public function eraseCredentials();
}