【问题标题】:Repository without entity没有实体的存储库
【发布时间】:2018-12-10 10:49:56
【问题描述】:

我在 symfony 3.4 上的站点上有管理区域。 admin 的登录和密码存储在 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。 (我的数据库中不需要表管理员!!!)

【问题讨论】:

标签: php mysql symfony oop dql


【解决方案1】:

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

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

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

因此,通过使用带有 memory 配置键的提供程序,您已经在“配置”中定义了您的用户,您需要在那里添加/编辑/删除它们。

【讨论】:

    猜你喜欢
    • 2019-08-26
    • 1970-01-01
    • 2016-06-08
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多