首页 > 解决方案 > 没有实体的存储库

问题描述

我在 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。(我的数据库中不需要表管理员!!!)

标签: phpmysqlsymfonyoopdql

解决方案


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

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

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

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


推荐阅读