SilverStripe Dropzone: не удается удалить файл

Я использую модуль SilverStripe Dropzone для загрузки изображений в интерфейсной форме. Это поле:

$fields->push(FileAttachmentField::create('ProfileImageID', 'Upload Profile Photo')
    ->setFolderName('Foo')
    ->setValue(null, $this)
    ->imagesOnly()
    ->setPermissions([
        'delete' => true
    ])
);

Отношение имеет один. Я также установил разрешение на удаление.

public function canDelete($member = null)
{
    return Permission::check('ADMIN') || $member->ContactID === $this->ID;
}

Сначала кажется, что я могу удалить его, но если я обновлю страницу, изображение снова появится. Я понятия не имею, что мне не хватает. Какие-нибудь советы?


person Greg 808    schedule 11.08.2017    source источник
comment
Я думаю, что мне нужно перезаписать метод удаления?   -  person Greg 808    schedule 12.08.2017
comment
Попробуйте вместо этого: return Permission::check('ADMIN') || ($member->ContactID === $this->ID).   -  person cryptopay    schedule 14.08.2017
comment
Спасибо за ваши усилия! Это ничего не изменило.   -  person Greg 808    schedule 17.08.2017


Ответы (1)


Я узнал, в чем проблема. У меня есть ProfileImage в качестве обязательного поля, поэтому я не могу сохранить его, если его нет. Так что Dropzone не удаляет файл. Насколько я понял, Dropzone нужно сохранить, чтобы удалить. Я использую ZenValidator для проверки. Я не уверен, но я надеюсь, что это может помочь кому-то еще. Если я ошибаюсь, поправьте меня.

person Greg 808    schedule 17.08.2017