使用/扩展原则实体

时间:2018-08-17 05:17:47

标签: php doctrine-orm

我是ORM的新手,我想了解在哪里添加代码等。

说我有一个用户实体:

src/Entity/User.php

class User
{
    /**
     * @var int
     *
     * @ORM\Column(name="user_id", type="integer", nullable=false, options={"unsigned"=true})
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $userId;

    /**
     * @var int
     *
     * @ORM\Column(name="group_id", type="smallint", nullable=false, options={"unsigned"=true})
     */
    private $groupId = '0';

    /**
     * @var string
     *
     * @ORM\Column(name="username", type="string", length=20, nullable=false)
     */
    private $username;
    ...

如果我想基于id等获取用户,这很好。我可以使用实体管理器执行$ em-> find('User',1);

我想添加一些逻辑以检查用户是否是管理员用户(例如$ user-> isAdmin())。我在哪里添加呢?对于存储库,代理还是仅通过扩展User实体类(例如,使实体类为UserBase并让User对其进行扩展)?

1 个答案:

答案 0 :(得分:1)

您的用户实体应该实现Symfony的UserInterface,并且已经能够执行诸如检查角色,密码等操作。

有关其他信息: -使用实体对实体已经加载的数据进行一些操作。例如,您可以添加“ getFullName()”方法 -例如,如果您要检索具有某些排序规则,条件等的用户列表,请使用存储库进行数据库操作。

为回答您的问题,实体中将包含诸如“ isAdmin()”之类的方法。