Silverstripe将UploadField添加到ModelAdmin失败

时间:2016-05-06 01:42:26

标签: php silverstripe modeladmin

我试图通过在GridFieldList之后创建扩展来将UploadField添加到ModelAdmin。但我总是得到一个错误"在第161行和第34行的.... / framework / forms / FormField.php中的非对象上调用成员函数FormAction()。我可以毫无问题地添加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>

1 个答案:

答案 0 :(得分:0)

如果您正在撰写Extension(特别是DataExtension),那么您可以使用updateCMSFields($fields)通过引用传递FieldList的实例

但是要根据我的意愿添加UploadField,可以将其添加到DataExtension,在File的调用中扩展(装饰)updateCMSFields()或更改{在上面的示例中{1}}到extends Extension,然后运行extends DataExtension