Silverstripe 3.1页面包含一个或多个数据对象

Silverstripe 3.1页面包含一个或多个数据对象,silverstripe,Silverstripe,我有一个类产品页面扩展页面和一个类产品规范扩展数据对象。我是否可以创建一个与数据对象的$has\u one关系,以及一个$所属的返回到ProductPage?(我知道只保留与页面关联的所有数据比较容易,但我更喜欢将ProductSpecifications作为单独的数据对象)。如果是,如何从页面访问Dataobject的CMSfields?格里菲尔德?或者类似的 $fieldsToAdd = ProductSpecifications::create(); $fieldsToAdd->ge

我有一个
类产品页面扩展页面
和一个
类产品规范扩展数据对象
。我是否可以创建一个与数据对象的
$has\u one
关系,以及一个
$所属的
返回到ProductPage?(我知道只保留与页面关联的所有数据比较容易,但我更喜欢将ProductSpecifications作为单独的数据对象)。如果是,如何从页面访问Dataobject的CMSfields?格里菲尔德?或者类似的

$fieldsToAdd = ProductSpecifications::create();
$fieldsToAdd->getCMSFields();
$fields->addFieldsToTab('Root.Specifications', $fieldsToAdd);

你说的是一对一的关系?那么问题的标题有点误导

您可以使用


希望这能有所帮助,wmk

是1:1的关系。$ProductPage管理的是$ProductPage,还是没有必要?1:1是$ProductPage一边有一个,另一边有$ProductPage。通过这种方式,您可以从相关规范数据对象访问主产品页。如果你不需要它,它可能是不必要的,但如果你把它留在里面,它会更正确/优雅。您是否试用了HasOneEdit模块?