Ich muss bestimmte Datei hochladen überspringen, wenn Benutzer dieses Formularfeld nicht gefüllt, zum Beispiel habe ich 4 Felder ein Bild hochladen, wenn Benutzer nur 3 Felder ausfüllen, dann Controller sollte 4. Formular Feld überspringen. Fehler Call to a member function saveAs() on null
wird erhalten, weil der Controller das leere Formular nicht überspringt.Yii2: Wie leere Formular beim Hochladen von Bild zu überspringen?
Wie leeres Formular zu überspringen?
public function actionCreate()
{
$model = new HomePageImg();
if ($model->load(Yii::$app->request->post()))
{
$imageName1 = $model->img_1_name;
$imageName2 = $model->img_2_name;
$imageName3 = $model->img_3_name;
$imageName4 = $model->img_4_name;
$model->file1 = UploadedFile::getInstance($model, 'file1');
$model->file1->saveAs(Yii::getAlias('@frontend/web') . '/uploads/hotel-home-img/' . $imageName1 . '.' . $model->file1->extension);
//save the path in the db column
$model->photo_1 = 'uploads/hotel-home-img/' . $imageName1 . '.' . $model->file1->extension;
$model->file2 = UploadedFile::getInstance($model, 'file2');
$model->file2->saveAs(Yii::getAlias('@frontend/web') . '/uploads/hotel-home-img/' . $imageName2 . '.' . $model->file2->extension);
//save the path in the db column
$model->photo_2 = 'uploads/hotel-home-img/' . $imageName2 . '.' . $model->file1->extension;
$model->file3 = UploadedFile::getInstance($model, 'file3');
$model->file3->saveAs(Yii::getAlias('@frontend/web') . '/uploads/hotel-home-img/' . $imageName3 . '.' . $model->file3->extension);
//save the path in the db column
$model->photo_3 = 'uploads/hotel-home-img/' . $imageName3 . '.' . $model->file1->extension;
$model->file4 = UploadedFile::getInstance($model, 'file4');
$model->file4->saveAs(Yii::getAlias('@frontend/web') . '/uploads/hotel-home-img/' . $imageName4 . '.' . $model->file4->extension);
//save the path in the db column
$model->photo_4 = 'uploads/hotel-home-img/' . $imageName4 . '.' . $model->file1->extension;
$model->save(false);
return $this->redirect(['view', 'id' => $model->id]);
} else {
return $this->render('create', [
'model' => $model,
]);
}
}
Überprüfen Sie einfach, ob das Objekt null ist, bevor die saveAs – topher
wie geht das? – JKLM