Есть форма, с которой данные загружаются в БД и выводятся на другой страницу. Необходимо добавить на форму загрузку файла.
Форма
<?php
/* @var $this yii\web\View */
/* @var $name string */
/* @var $message string */
/* @var $exception Exception */
use yii\helpers\Html;
use yii\widgets\ActiveForm;
$status = Yii::$app->user->identity->status;
?>
<div>
<? if($status == 'admin'){ ?>
<?php $form = ActiveForm::begin([ 'method' => 'POST','id' => 'addproject-form', 'options' => ['enctype' => 'multipart/form-data']]) ?>
<?= $form->field($form_model, 'name') ?>
<?= $form->field($form_model, 'url') ?>
<?= $form->field($form_model, 'resurs') ?>
<?= $form->field($form_model, 'studio') ?>
<?= $form->field($form_model, 'pic')->fileInput() ?>
<?= Html::submitButton('Добавить', ['class' => 'btn btn-success']) ?>
<?php ActiveForm::end() ?>
<? }
?>
</div>
Контроллер
public function actionAddproject()
{
$this->enableCsrfValidation = false;
$form_model = new ProjectAddForm();
if($form_model->load(\Yii::$app->request->post())){
$name_form = $_POST['ProjectAddForm']['name'];
$url_form = $_POST['ProjectAddForm']['url'];
$resurs_form = $_POST['ProjectAddForm']['resurs'];
$studio = $_POST['ProjectAddForm']['studio'];
$pic = $_FILES['ProjectAddForm']['name']['pic'];
$form_model -> pic = UploadedFile::getInstance($form_model,'pic');
$form_model -> pic -> saveAs('projects/' .$pic);
$date = new Projects();
$date ->name = $name_form;
$date ->url = $url_form;
$date ->resurs = $resurs_form;
$date ->studio = $studio;
$date ->pic = $pic;
$date->save();
}
return $this->render('addproject', compact('form_model'));
}
Данные успешно сохраняются в БД, но сам файл в нужную папку не сохраняется.