Yii2: объединение файлового входа и возможностей Kartik Kartik’s DetailView

Я пытаюсь загрузить один файл, используя Kartik’s FileInput.

Все идет хорошо, когда вы делаете это через стандартную форму создания, как показано ниже: ненулевой:

$filedata = UploadedFile::getInstance($model, 'filedata');

Однако это всегда возвращает ноль когда вы заходите в DetailView Картика в режиме редактирования и пытаетесь обновить файл.

В view.php Я имею:

[
'attribute' => 'filedata',
'visible' => Yii::$app->user->can('doIt'),
'type' => DetailView::INPUT_FILEINPUT,
'rowOptions' => ['class' => 'kv-view-hidden'],
'widgetOptions' => ['options' => ['accept' => 'application/pdf'],
'pluginOptions' => [
'showUpload' => false,
'allowedFileExtensions' => ['pdf'],
'initialCaption' => $model->filename,
],
'pluginEvents' => [
'filecleared' => <whatever>,
'fileloaded'  => <whatever>,
],
],
],

пока в _form.php (который работает):

<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?>

<?= $form->field($model, 'filedata')->widget(FileInput::classname(), [
'options' => ['accept' => 'application/pdf'],
'pluginOptions' => [
'showUpload' => false,
'allowedFileExtensions' => ['pdf'],
'initialCaption' => $model->getOldAttribute('filename'),
],
'pluginEvents' => [
'filecleared' => <whatever>,
'fileloaded'  => <whatever>,
],
])
?>

Есть идеи? (Кстати, не знаю, 'multipart/form-data' нужно как-то в view.php как это в _form.phpтак что любой, кто подтвердит это и предоставит некоторые детали, должен приветствоваться).

1

Решение

Конечно, multipart / form-data необходимы как в _form.php а также view.php а также следующим образом:

'formOptions' => ['options' => ['enctype' => 'multipart/form-data']],
'attributes' => [
...
[
'attribute' => 'filedata',
'visible' => Yii::$app->user->can('doIt'),
'type' => DetailView::INPUT_FILEINPUT,
'rowOptions' => ['class' => 'kv-view-hidden'],
'widgetOptions' => ['options' => ['accept' => 'application/pdf'],
'pluginOptions' => [
'showUpload' => false,
'allowedFileExtensions' => ['pdf'],
'initialCaption' => $model->filename,
],
'pluginEvents' => [
'filecleared' => <whatever>,
'fileloaded'  => <whatever>,
],
],
],
....
]
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]