我尝试在CMS中创建所需的字段:
class Documents extends DataObject {
private static $db = array(
'DocType' => 'Text',
'DocTitle' => 'Text',
'DocNumber' => 'Text'
);
public function getCMSFields() {
$fields = parent::getCMSFields();
$fields = FieldList::create(TabSet::create('Root'));
$fields->addFieldsToTab('Root.Main', array(
DropdownField::create('DocType','Document Type'),
DropdownField::create('DocStatus','Document Status'),
TextField::create('DocNumber','Document Number'),
...
RequiredFields::create(array('DocType','DocTitle','DocNumber'));
));
return $fields;
}
Run Code Online (Sandbox Code Playgroud)
但在我的SilverStripe错误日志中,我得到以下内容:
"Uncaught Exeption:RequiredFields上不存在方法'getname',或者方法不公开".
如何在SilverStripe CMS中创建所需的字段?
在CMS中,我们可以通过声明一个getCMSValidator函数并返回来声明必填字段RequiredFields:
public function getCMSValidator()
{
return RequiredFields::create(
'DocType',
'DocTitle',
'DocNumber'
);
}
Run Code Online (Sandbox Code Playgroud)