Есть два поля (паспорт и диплом), пользователь будет отправлять свой паспорт и диплом на сайт, соответственно картинки сохраняются на сервере и путь к картинкам сохраняется в таблицу бд. Пытался это реализовать, в итоге картинки на сервер сохраняются, а в таблицу ничего путь путь не записывается.
Форма:
<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?>
<?= $form->field($model, 'passport')->fileinput()->label(false) ?>
<?= $form->field($model, 'diploma')->fileinput()->label(false) ?>
<?= Html::submitButton('Отправить') ?>
<?php ActiveForm::end() ?>
Модель:
public function rules()
{
return [
[['passport', 'diploma'], 'file', 'extensions' => 'png, jpg'],
];
}
Контроллер:
public function actionCreate()
{
$model = new Clients();
if ($model->load(Yii::$app->request->post())) {
if ($model->save()) {
$model->passport = UploadedFile::getInstance($model, 'passport');
$model->diploma = UploadedFile::getInstance($model, 'diploma');
$path = 'img/store/' . $model->id_cart . '/';
FileHelper::createDirectory($path);
if ($model->passport) {
$file = $path . $model->passport->baseName . '.' . $model->passport->extension;
$model->passport->saveAs($file);
}
if ($model->diploma) {
$file = $path . $model->diploma->baseName . '.' . $model->diploma->extension;
$model->diploma->saveAs($file);
}
Yii::$app->session->setFlash('success', 'Спасибо, мы получили вашу анкету. В скором времени мы с вами свяжемся. Ваш ID Анкеты - '
. $model->id_cart
. ". Вы можете проверит статус своей анкеты в разделе - <a href='/card'>Моя анкета</a> ");
} else {
Yii::$app->session->setFlash('error', 'Ошибка... Попробуйте еще раз...');
}
return $this->refresh();
}
return $this->render('create', [
'model' => $model,
]);
}