如何使用Silverstripe 3 beta UploadField

时间:2012-06-02 16:01:27

标签: silverstripe

我正在尝试在前端使用UploadField,以便用户上传他们的公司徽标。

目前还没有关于UploadField的文档。我试过了,但到目前为止没有运气。

任何人都可以指导我如何使用它吗?

2 个答案:

答案 0 :(得分:1)

这有点旧,但如果有其他人像我一样偶然发现了这一点。

UploadField可以正常工作。我无法使用saveInto函数保存到many_many关系。但我错过的最重要的事情是DataObject / Page需要首先存在,因为它需要先保存才能附加像图像这样的相关对象。

static $has_one = array(
    "Photo" => "Image"
);

$fields = new FieldList(
    new UploadField( 'Photo', 'Upload' )
);

function saveForm( $data, $form ) {
    $object = new DataObject();
    // for a new object write before saveinto
    $object->write();
    $form->saveInto($object);
    $object->write();
    Director::redirectBack();
}

使用ss 3.0.1

或者不是使用saveinto函数,您可以手动循环遍历参数并将它们自己附加到对象上以用于many_many图像。

答案 1 :(得分:0)

上传字段通过对象中的can *()方法检查权限。

为了允许前端编辑 - 您可能必须在自定义对象中重载File :: canEdit(或Image :: canEdit)来处理此问题。