Silverstripe 将 UploadField 添加到 ModelAdmin 失败


Silverstripe add UploadField to ModelAdmin failed

我正在尝试通过在GridFieldList之后创建一个扩展来将UploadField添加到ModelAdmin。但是我总是收到一个错误"在第 161 行的 ..../framework/forms/FormField 中的非对象上调用成员函数 FormAction(.php"。我可以毫无问题地添加TextField,DropdownField,但UploadField没有运气。我错过了什么吗?

<code>
    class MyExtension extends Extension{
        public static $has_one = array(
            'ImportCSV' => 'File'
        );
        public function updateEditForm($form){
            $fields = $form->Fields();
            $fields->push(
                new TextField('Title', 'Title')
            );//This one works
            $fields->push(
                new UploadField('ImportCSV', 'Import CSV')
            );//This one not working
        }
    }
</code>

如果你正在编写一个Extension(特别是一个DataExtension(,那么你将使用updateCMSFields($fields),它通过引用传递FieldList的实例。

但是要按照我认为您想要的方式添加UploadField,请将其添加到在调用updateCMSFields()中扩展(装饰(FileDataExtension,或者在上面的示例中将extends Extension更改为extends DataExtension,然后运行dev/build flush=all