在Silverstripe中何时使用页面vs数据对象

在Silverstripe中何时使用页面vs数据对象,silverstripe,data-objects,Silverstripe,Data Objects,在创建数据表时,何时在Silverstripe中将Page vs Dataobject用作祖先。我猜从Page类继承会提供数据表页面功能,但这些页面功能是什么 你猜对了;)这通常是一个口味的问题,使用什么,这两种都适用于大多数情况 默认页面功能包括版本控制(stage/live)、URL段和页面嵌套,您可以定义$allowed\u children(哪些页面类型可以是该页面的子页面),谁可以查看和编辑页面。。。由于某些原因,可能会有一些开销 如果您不将其作为具有给定嵌套url的独立对象使用,您可

在创建数据表时,何时在Silverstripe中将Page vs Dataobject用作祖先。我猜从Page类继承会提供数据表页面功能,但这些页面功能是什么

你猜对了;)这通常是一个口味的问题,使用什么,这两种都适用于大多数情况

默认页面功能包括版本控制(stage/live)、URL段和页面嵌套,您可以定义
$allowed\u children
(哪些页面类型可以是该页面的子页面),谁可以查看和编辑页面。。。由于某些原因,可能会有一些开销

如果您不将其作为具有给定嵌套url的独立对象使用,您可能会考虑为其使用普通数据对象

另一方面,使用类似或的模块,您可以在GridField或类似ModelAdmin的普通dataobjects中编辑某些页面类型


因此,这两种方法都有各自的优点和缺点,你会发现什么更好,这取决于你自己。只需尝试一下并使用它。

需要注意的一点是,
Page
SiteTree
extend
DataObject
本身。这意味着
页面
具有与
数据对象
相同的行为和功能,并具有其他功能(版本控制、嵌套/树、自动URL和路由等)。如果不需要这些功能,请扩展
DataObject