Zkuste toto:
Controller:název obrázku byste měli uložit do databáze('$model->urls')
public function actionUpload()
{
$model = new Upload();
if ($model->load(Yii::$app->request->post())) {
$model->file = UploadedFile::getInstances($model, 'file');
foreach ($model->file as $key => $file) {
$file->saveAs('/uploads/'. $file->baseName . '.' . $file->extension);//Upload files to server
$model->urls .= 'uploads/' . $file->baseName . '.' . $file->extension.'**';//Save file names in database- '**' is for separating images
}
$model->save();
return $this->redirect(['view', 'id' => $model->id]);
} else {
return $this->render('upload', [
'model' => $model,
]);
}
}
Zobrazit
<?= $form->field($model, 'file[]')->widget(FileInput::classname(), [
'options' => ['multiple' => 'true'],
]) ?>
Model
class Upload extends Model
{
public $file;
public function rules()
{
return [
[['file'], 'file','maxFiles' => 6],
[['urls'],'string'],
];
}
Další pohled na zobrazování obrázků
<?php
$images=explode('**',trim($model->urls));
foreach($images as $image)
{
echo Html::img(Url::to('@web/' . $image, true));
}
?>