我发现ModelAdmin比SilverStripe中的GridField更强大。我的问题是你什么时候使用GridField而不是ModelAdmin?
答案 0 :(得分:5)
ModelAdmin,taken from the SilverStripe documentation:
ModelAdmin提供了一种将SilverStripe Admin UI与您自己的数据模型一起使用的简单方法。它可以创建可搜索列表和编辑DataObject子类的视图,甚至可以导入和导出数据。
它还继续声明ModelAdmin由GridField提供支持。您可能已经知道的,GridField可以直接在ModelAdmin之外使用,例如Pages或其他DataObjects。
将ModelAdmin视为DataObjects的容器,利用GridField查看和导航它们。 ModelAdmin中的项目不必与页面有关系。
正因为如此,查看特定DataObjects的managing permissions之类的内容变得更加容易,因为您可以更轻松地控制登录CMS的用户是否可以查看ModelAdmin页面而不是尝试隐藏特定页面上的特定GridField。 / p>
现在,对于ModelAdmin之外的GridField使用,通常您会在SiteTree的页面上看到这一点,用于链接一组DataObject(通常通过has_many
,但也可以是many_many
)页面本身。
直接在页面上使用GridField的一个好例子是,如果您想在特定页面上使用图库。您不需要ModelAdmin,因为您希望它与页面本身链接。
您可能希望更多地使用ModelAdmin的示例类似于电子商务网站。您可以存储订单并使用ModelAdmin显示它们,然后导航到SiteTree中的特定“商店”页面以查看数据。
没有什么可以阻止您使用一种方法或另一种方法来显示您的数据,每种方法都有自己的优点和开箱即用的功能,而无需额外的配置。