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的队伍轻松添加我的意思。这难道不是多余的吗?我似乎无法理解你的逻辑,你如何发现等级标识符是多余的?我使用了这个解决方案,但我认为条令会有其他东西