@Luchifer

Yii2 загрузка фото beforesave как реализовать?

привет , как это кода перевести на beforesave ?
так все работает , загружаю фото на другой табель , мне нужен что он работал на beforesave
public function actionCreate()
    {
            $model = new Shekil();

        if ($model->load(Yii::$app->request->post())) {
            if(isset($model->photos)){
                $upload = new UploadForm();
                $upload->imageFile= UploadedFile::getInstances($model, 'photos');
                foreach ($upload->imageFile as $photos) {
                    $photos->name = Yii::$app->getSecurity()->generateRandomString(15).'.'.$photos->extension;
                    $array[] = $photos->name;
                }
                if ($upload->uploadMultiplePhoto() && !empty($array)) {
                    $model->save();
                    foreach ($array as $value) {
                        $query = Yii::$app->db->createCommand()->insert('shekiller', [
                            'shekil_id' => $model->id,
                            'image' => $value
                        ]);
                        if(!$query->execute()){
                            break;
                            $model->delete();
                            return $this->redirect(['view', 'id' => $model->id]);
                        }
                    }
                    return $this->redirect(['view', 'id' => $model->id]);
                }else{
                    var_dump($upload->errors);
                }
            }else{
                $model->save();
                return $this->redirect(['view', 'id' => $model->id]);
            }
        }
        return $this->render('create', [
            'model' => $model,
        ]);
    }


попробывал делать сам не получился (
  • Вопрос задан
  • 210 просмотров
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
привет , как это кода перевести на beforesave ?

скопировать и вставить, заменить $model на $this
Но только наверное afterSave, так как в beforeSave у новых моделей еще нет id
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
kawabanga
@kawabanga
1) проверяйте хотя бы validate() при загрузке в модель. Иначе может быть так, что модель не проходит валидацию, а вы редиректите и человек теряет все что вводил.

2) Вам для работы необходим $model->id . Вы можете получить его в функции afterSave();
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы