Я пытаюсь загрузить один файл, используя FileInput от Kartik.
Все идет хорошо, когда вы делаете это через стандартную форму создания, так как следующее возвращает non-null:
$filedata = UploadedFile::getInstance($model, 'filedata');
Однако он всегда возвращает null при входе в 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
, поэтому любой, кто подтвердит это и расскажет некоторые подробности, приветствуется).