没有实体的存储库

时间:2018-12-10 10:49:57

标签: php mysql symfony oop dql

我在symfony 3.4上的网站上拥有管理区域。 管理员的登录名和通行证存储在security.yml中的内存中

providers:
  users_db:
      entity:
        class: AppBundle:User
        property: email

admin_db:
    memory:
        users:
            admin:
                password: root
                roles: 'ROLE_ADMIN'

我还需要一个用于管理员DQL查询的存储库(用户数,评论数,不同设置)。但是我不需要实体管理员(我将用于管理员的数据存储在security.yml中的内存中) 如何创建存储库AdminRepository而不创建实体admin。 (我的数据库中不需要表admin!)

1 个答案:

答案 0 :(得分:0)

InMemoryProvider正是这样做的,将用户存储在内存中而不是数据库中。您无法在运行时添加,编辑或删除用户,因为它们完全在该非常YAML文件中定义。

请参见https://symfony.com/doc/4.0/security.html#b-configuring-how-users-are-loaded

  

最简单(但最有限)的方法是配置Symfony以直接从security.yaml文件本身加载硬编码用户。这称为“内存中”提供程序,但最好将其视为“配置中”提供程序。

因此,通过使用具有memory config键的提供程序,可以在“配置中”定义用户,并且需要在其中添加/编辑/删除用户。