Php 如何在CMS中创建必填字段

Php 如何在CMS中创建必填字段,php,silverstripe,Php,Silverstripe,我尝试在CMS中创建必填字段: class Documents extends DataObject { private static $db = array( 'DocType' => 'Text', 'DocTitle' => 'Text', 'DocNumber' => 'Text' ); public function getCMSFields() { $fields = par

我尝试在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错误日志中,我得到以下信息:

“未捕获的执行:RequiredFields上不存在方法'getname',或者该方法不是公共的”


如何在SilverStripe CMS中创建必填字段?

在CMS中,我们可以通过声明
getCMSValidator
函数并返回
RequiredFields
来声明必填字段:

public function getCMSValidator()
{
    return RequiredFields::create(
        'DocType',
        'DocTitle',
        'DocNumber'
    );
}