Ответы пользователя по тегу Yii
  • Как добавить несколько имён файлов в БД?

    Reexel
    @Reexel
    public function uploadImages(){
            if($this->images) {
                $filesName = [];
                foreach ($this->images as $file) {
                    $filename=Yii::$app->getSecurity()->generateRandomString(15);
                    if ($file->saveAs('uploads/images/products/source/' . $filename . '.' . $file->extension)){
                        $filesName[] = $filename;
                    }
                }
                return $filesName;
            }else {
                return false;
            }
        }


    if ($model->load(Yii::$app->request->post()) && $model->save()) {
                $model->images = UploadedFile::getInstances($model, 'images');
    
                if ($filenames= $model->uploadImages()) {
                    $model->product_id = $id;
                    if($filenames && $model->save()) {
                         foreach($filenames as $filename) {
                               $modelImage = new Image();
                               $modelImage->name = $filename;
                               $modelImage->item_id = $model->id;
    
                               ... записываем еще свойства объекта картинки
    
                               if($modelImage->save()) {
                                        Yii::$app->session->setFlash('success', "Товар {$model->name} обновлён");
                               }
                          }
                    }
                }
            }


    По коду не совсем понятно, какие модели и как сформированы (поэтому в код может быть не совсем корректен). В общем идея такая: собираем в массив названия картинок и передаем его. Затем в модели картинок записываем эти файлы после сохранения модели товара (необходимо для наличия id товара.
    Ответ написан
    Комментировать