Hallo Zusammen
Ich habe ein Formular mit 6 Bild Uploads. Der Benutzer soll jederzeit eines der Bilder aktualisieren können. Ich bring das nicht fertig. Es überschreibt mir immer die anderen Bilder wieder mit Null. Wie kann ich prüfen ob der Benutzer ein Feld (Upload) geändert hat?
Vielen Dank
Beat
[size="2"]View: (benutze [/size][size="2"]yii2-widget-fileinput[/size] [size="2"]https://github.com/k...idget-fileinput)[/size]
<?= $form->field($model, 'logo')->widget(FileInput::classname(), [
'options' => ['accept' => 'images/upload/*'],
'pluginOptions' => [
'initialPreview'=>[
Html::img('images/upload/'. $model->logo)
],
]
]); ?>
<?= $form->field($model, 'praxis1')->widget(FileInput::classname(), [
'options' => ['accept' => 'images/upload/*'],
'pluginOptions' => [
'initialPreview'=>[
Html::img('images/upload/'. $model->praxis1)
],
]
]); ?>
Controller:
public function actionUpdate()
{
$model = $this->findbyuser(Yii::$app->user->identity->id);
if ($model->load(Yii::$app->request->post()) ) {
$model->upload('logo');
$model->upload('praxis1');
$model->upload('praxis2');
$model->upload('praxis3');
$model->upload('team1');
$model->upload('team2');
$model->save();
return $this->redirect(['view', 'id' => $model->id]);
} else {
return $this->render('wizard', [
'model' => $model,
]);
}
}
[size="2"]Model: [color="#000080"]Hier müsste ich irgendwie erkennen ob der Benutzer ein Bild geändert hat ansonsten ist keine Aktion notwendig.[/color][/size]
public function upload($field) {
$image = UploadedFile::getInstance($this, $field);
if(!empty($image)){
$rnd = rand(0,9999);
$logo_name = Yii::$app->user->identity->id . '_' . $field .'_' . $rnd . '.' . $image->extension;
Yii::$app->params['uploadPath'] = Yii::$app->basePath . '/web/images/upload/';
$path = Yii::$app->params['uploadPath'] . $logo_name;
$image->saveAs($path);
$this->$field = $logo_name;
}
}