【问题标题】:ModelAdmin vs GridField: When to use one over the other?ModelAdmin 与 GridField:何时使用一个而不是另一个?
【发布时间】:2016-05-18 22:18:48
【问题描述】:

我发现 ModelAdmin 比 SilverStripe 中的 GridField 更强大。我的问题是你什么时候使用 GridField 而不是 ModelAdmin?

【问题讨论】:

  • 我想知道为什么这个问题没有标记为离题...
  • @Akam,我不认为这个问题是题外话,因为虽然它可以公开发表意见,但它确实是在一个平台上比较两种相似的技术。
  • 离题,因为:许多好的问题会根据专家的经验产生一定程度的意见,但这个问题的答案往往几乎完全基于意见,而不是事实、参考资料或特定专业知识。

标签: silverstripe


【解决方案1】:

模型管理员,taken from the SilverStripe documentation

ModelAdmin 提供了一种将 SilverStripe 管理 UI 与您自己的数据模型结合使用的简单方法。它可以创建可搜索列表和编辑 DataObject 子类的视图,甚至提供数据的导入和导出。

它还继续声明 ModelAdmin 由 GridField 提供支持。您可能已经知道,GridField 可以直接在 ModelAdmin 之外轻松用于 Pages 或其他 DataObjects 之类的东西。

将 ModelAdmin 视为 DataObjects 的容器,利用 GridField 来查看和导航它们。 ModelAdmin 中的项目不必与页面有关系。

因此,像managing permissions 这样查看特定 DataObjects 变得更容易,因为您可以更轻松地控制登录到 CMS 的人是否可以查看 ModelAdmin 页面,而不是尝试隐藏特定页面上的特定 GridField。

现在对于 ModelAdmin 之外的 GridField 使用,通常您会在 SiteTree 中的页面上看到此内容,用于将一组 DataObjects(通常通过 has_many 虽然也可以是 many_many)链接到页面本身。

直接在页面上使用 GridField 的一个很好的例子是,如果您想要在特定页面上显示图片库。您不需要 ModelAdmin,因为您希望它与页面本身链接。

您可能希望更多地使用 ModelAdmin 的示例是电子商务网站。您将存储订单并使用 ModelAdmin 显示它们,而不是导航到 SiteTree 中的特定“商店”页面以查看数据。

没有什么能阻止您使用一种或另一种方法来显示数据,每种方法都有自己的优点和开箱即用的功能,无需太多额外配置。

【讨论】:

    猜你喜欢
    • 2011-08-12
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多