Php 使用单表继承登录

Php 使用单表继承登录,php,zend-framework,symfony,doctrine-orm,doctrine,Php,Zend Framework,Symfony,Doctrine Orm,Doctrine,我有一个实体帐户和两个单表继承的表:客户端和管理员 我有一个使用Account表的登录表单。用户登录后,我会得到如下信息: $account = $this->em->getRepository ( 'Entities\Account' ) ->findOneByEmail ( $email ) ); 我获得该帐户没有问题,但问题是:如何确定用户是客户还是管理员?我知道我可以做get\u class并查看它使用的是哪个类,但我认为这不是正确的方法。有什么帮助吗?

我有一个实体
帐户
和两个单表继承的表:
客户端
管理员

我有一个使用
Account
表的登录表单。用户登录后,我会得到如下信息:

    $account = $this->em->getRepository ( 'Entities\Account' )
   ->findOneByEmail ( $email ) );

我获得该帐户没有问题,但问题是:如何确定用户是客户还是管理员?我知道我可以做
get\u class
并查看它使用的是哪个类,但我认为这不是正确的方法。有什么帮助吗?谢谢

如果您不想使用get\u类 你会这样做吗

class Client extends Account
{
    protected $discr  = 'client';
    ...
}

class Administrator extends Account
{
    protected $discr  = 'administrator';
    ...
}
对象中的字段(不在数据库中)


并在Acount类中创建getType()方法,为什么不在表
Account
中添加一列来保存排名?我觉得这是多余的。有实体客户机,有一个列说排名是“客户机”,这就是你的意思/我的意思是有一个名为排名的列(不管它如何命名),它将保存数字,数字将有意义。假设0将是客户端,1将是管理员等等,这也打开了你在Futuratat的队伍轻松添加我的意思。这难道不是多余的吗?我似乎无法理解你的逻辑,你如何发现等级标识符是多余的?我使用了这个解决方案,但我认为条令会有其他东西