获取 Doctrine 实体列表(UI 人口、访问权限等)

Posted

技术标签:

【中文标题】获取 Doctrine 实体列表(UI 人口、访问权限等)【英文标题】:Getting a list of Doctrine Entities (UI population, access rights, etc.) 【发布时间】:2015-03-03 15:29:29 【问题描述】:

我正在尝试了解 Doctrine Entity 及其继承模型。这是我想要一些建议的情况;我有一个基类Box,根据应用,其他几个类可以扩展Box类(STI),例如:TextBoxImageBoxSliderBoxPortraitBox可以扩展ImageBox,等等。

获取扩展Box 的所有类的列表(以自动方式)的最佳方法是什么?例如,如果应用的用户需要选择创建哪个 Box,或者管理员需要选择所有应该对某些用户可编辑的 Box,等等。

在 UI 填充的情况下,是否可以使用类名填充 UI 元素?

【问题讨论】:

【参考方案1】:

我建议您在配置文件中定义所有可能的值。这样您就不必实施复杂的自动发现,一旦需求发生变化就会失败,您甚至可以提供额外的信息。考虑这个例子:

boxes.yml

boxes:
    text:
        class: "My\FQCN\To\TextBox"
        displayName: "Text Box"
        editableBy: ["admin", "editor"]

    image:
        class: "My\FQCN\To\ImageBox"
        displayName: "Image Box"
        editableBy: ["admin", "photographer"]

    ...

现在,您只需要实现域逻辑,以便您的应用程序理解配置文件。并且不要忘记在某处记录不同的配置可能性。

如果您需要动态访问控制,很好:使用二级标识符(例如textimage)作为键来识别数据库中的框并分配权限。这些是唯一的内部名称,与 UI 和实际实现无关。

【讨论】:

感谢@FaKeller 的想法。阅读您的回答让我想到了如何在添加新框类型时使用控制台命令自动执行此操作。

以上是关于获取 Doctrine 实体列表(UI 人口、访问权限等)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Symfony 2.1 从内部控制器获取 Doctrine 实体的实体管理器

如何使用symfony获取Doctrine实体持久集合数据值

使用 Doctrine ORM ManyToOne 关系在相反方向获取实体

如何从 Doctrine Fixture 参考中获取实体?

有没有办法从 Doctrine 2.2 实体中获取 FK 列值?

Symfony 5 和 Doctrine,找不到使用 3 个相关实体获取结果的方法