我在SilverStripe中安装了一个photogallery模块。该模块有一个名为PhotoItem的DataObject。
PhotoItem类包含一些字段,但我想添加额外的字段。最简单的方法是编辑PhotoItem文件,但是在更新模块时我会丢失更改。
如何使用/ mysite / code下的DataObject文件扩展此DataObject以及更多字段?
答案 0 :(得分:3)
在Silverstripe 3.1中,您可以通过创建DataExtension
并将其应用于您的班级来扩展课程。
首先,您将在 mysite / code 或 mysite / code / extensions 中创建 CustomPhotoItem.php :
<强> CustomPhotoItem.php 强>
class CustomPhotoItem extends DataExtension {
private static $db = array(
'ExtraTextField' => 'Text'
);
public function updateCMSFields(FieldList $fields) {
$fields->push(TextField::create('ExtraTextField', 'Extra Text Field'));
}
}
要将此扩展程序应用于您的课程,您需要将以下内容添加到config.yml:
<强> config.yml 强>
PhotoItem:
extensions:
- CustomPhotoItem
您的config.yml应位于 mysite / _config / config.yml 中。
运行dev/build?flush=1
,您应该会看到新变量已添加到原始对象中。
答案 1 :(得分:2)
您正在搜索DataExtension。看看documentation,您需要为DataObjects添加更多字段。 特别要看一下名为添加额外数据库字段
的部分