何时在 Silverstripe 中使用 Page 与 Dataobject

When to use Page vs Dataobject in Silverstripe

创建数据时,何时在 Silverstripe 中使用 Page 与 Dataobject 作为祖先 tables。我想从 Page class 继承可以提供数据 table 页面功能,但这些页面功能是什么?

您猜对了 ;) 使用什么通常是个人喜好问题,两者都适用于大多数情况。

默认页面功能例如版本控制(舞台/现场),url 页面的分段和嵌套,您可以定义 $allowed_children(哪些页面类型可以是该页面的子页面),谁可以查看和编辑页面......可能有由于某些原因会产生一些开销。

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

另一方面,使用像 lumberjack or catalogmanager 这样的模块,您可以在 GridField 或 ModelAdmin 中编辑某些页面类型,例如普通数据对象。

因此,这两种方式各有利弊,取决于您发现哪种方式更好。只需尝试并使用它即可。