代码之家  ›  专栏  ›  技术社区  ›  Noodles

使用/扩展条令实体

  •  0
  • Noodles  · 技术社区  · 6 年前

    假设我有一个用户实体:

    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->查找('user',1);

    我想添加一些逻辑来检查用户是否是管理员用户(例如$user->is admin())。我该在哪里添加这个?对于存储库、代理或仅仅通过扩展用户实体类(例如,使实体类成为UserBase并让用户扩展它)?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Magnesium    6 年前

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

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

    因此,要回答您的问题,实体中将包含一个方法,如“isAdmin()”。