ModelAdmin vs GridField:何时使用另一个?

Lea*_*One 4 silverstripe

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

Tur*_*erj 5

ModelAdmin,取自SilverStripe文档:

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

它还继续声明ModelAdmin由GridField提供支持.您可能已经知道的,GridField可以直接在ModelAdmin外部使用,例如Pages或其他DataObjects.

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

因此,管理查看特定DataObjects的权限之类的事情变得更加容易,因为您可以更轻松地控制登录CMS的人是否可以查看ModelAdmin页面与尝试隐藏特定页面上的特定GridField.

现在,对于ModelAdmin之外的GridField使用,通常您会在SiteTree的页面上看到这一点,用于将一组DataObjects(通常has_many也可以通过a many_many)链接到页面本身.

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

您可能希望更多地使用ModelAdmin的示例类似于电子商务网站.您可以存储订单并使用ModelAdmin显示它们,然后导航到SiteTree中的特定"商店"页面以查看数据.

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