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

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

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

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

【问题讨论】:

    标签: php inheritance orm doctrine-orm doctrine


    【解决方案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 的想法。阅读您的回答让我想到了如何在添加新框类型时使用控制台命令自动执行此操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-08
    • 2021-06-02
    • 1970-01-01
    相关资源
    最近更新 更多