如何在 CMS 中创建必填字段
How to make fields required in CMS
我尝试在 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;
}
但在我的 SilverStripe 错误日志中,我得到以下信息:
"Uncaught Exeption: the method 'getname' doesn't exist on RequiredFields or the method is not public".
如何在 SilverStripe CMS 中创建必填字段?
在 CMS 中,我们可以通过声明一个 getCMSValidator
函数并返回 RequiredFields
:
来声明必填字段
public function getCMSValidator()
{
return RequiredFields::create(
'DocType',
'DocTitle',
'DocNumber'
);
}
我尝试在 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;
}
但在我的 SilverStripe 错误日志中,我得到以下信息:
"Uncaught Exeption: the method 'getname' doesn't exist on RequiredFields or the method is not public".
如何在 SilverStripe CMS 中创建必填字段?
在 CMS 中,我们可以通过声明一个 getCMSValidator
函数并返回 RequiredFields
:
public function getCMSValidator()
{
return RequiredFields::create(
'DocType',
'DocTitle',
'DocNumber'
);
}