Я не могу загружать изображения через форму интерфейса в Silverstripe. Я посмотрел на пример по этому страница но это не помогло мне. Обновление текстовых полей работает нормально. Мой код размещен ниже, что я пропустил?
public function ChecklistForm()
{
$checklist = Checklist::get()->byID($this->request->param('ID'));
$form = Form::create(
$this,
__FUNCTION__,
FieldList::create(
TextField::create('Object','')
->addExtraClass('form-control')
->setAttribute('placeholder','Object')
->setAttribute('value', $checklist->Object),
TextField::create('Contact','')
->addExtraClass('form-control')
->setAttribute('placeholder','Contact')
->setAttribute('value', $checklist->Contact),
TextField::create('Address','')
->addExtraClass('form-control')
->setAttribute('placeholder','Address')
->setAttribute('value', $checklist->Address),
HiddenField::create('ChecklistId','')
->setAttribute('value', $this->request->param('ID')),
UploadField::create('Images','Upload Images')
->setFolderName('checklist-images')
),
FieldList::create(
FormAction::create('handleChecklist','Update Checklist')
->setUseButtonTag(true)
->addExtraClass('btn btn-default-color btn-lg')
),
RequiredFields::create('Object','Contact','Address')
)
->addExtraClass('form-style');
return $form;
}
public function handleChecklist($data, $form)
{
$checklist = Checklist::get()->byID($data['ChecklistId']);
$checklist->Object = $data['Object'];
$checklist->Contact = $data['Contact'];
$checklist->Address = $data['Address'];
$form->saveInto($checklist);
$checklist->write();
$form->sessionMessage('Checklist has been updated!','good');
return $this->redirectBack();
}
Вы пропускаете запятую после:
HiddenField::create('ChecklistId','')
->setAttribute('value', $this->request->param('ID'))
Других решений пока нет …