Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony 2/条令2:同一表格中有两个实体,使用一个实体代替另一个实体_Php_Symfony_Doctrine Orm - Fatal编程技术网

Php Symfony 2/条令2:同一表格中有两个实体,使用一个实体代替另一个实体

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

在我的Symfony2应用程序中,我将大部分实体提取到一个单独的库中,并使用composer安装该库

这个库不依赖于Symfony2(但依赖于条令,因为我使用注释),因为我也想在其他非Symfony2项目中使用它

该库包含一个
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();
}