2016-09-06 2 views
0

Когда я пытаюсь сделать несколько попыток загрузки файлов. Когда я загружаю pro result, возникает ошибка. Описание ошибки может видеть ниже. И как решение?Загрузка нескольких файлов - «Получение неизвестного свойства» в yii2

Неизвестная недвижимость - yii \ base \ UnknownPropertyException. Получение неизвестное свойство: приложение \ модели \ Галерея :: Batas KRS.JPG

код в контроллере

public function actionGallery() 
 
     { 
 
      $model = new \app\models\Gallery(); 
 
      if (\Yii::$app->request->post()) { 
 
       $model->image = \yii\web\UploadedFile::getInstances($model, 'image'); 
 
        if ($model->validate()) { 
 
         foreach ($model->image as $file) { 
 
          $saveTo = 'uploads/' . $file->baseName . '.' . $model->$file->extension; 
 
           if ($file->saveAs($saveTo)) { 
 
            $model2 = new \app\models\Gallery(['image' => $file->baseName . '.' . $file->extension, 
 
             ]); 
 
            $model2->save(false); 
 
           } 
 
          } 
 
          \Yii::$app->session->setFlash('success', 'Success uploaded !'); 
 
         } 
 
        } 
 
        return $this->render('gallery', ['model' => $model 
 
         ]); 
 
     }

код ввиду

<?php 
 
use yii\widgets\ActiveForm; 
 
use yii\helpers\Html; 
 
?> 
 
<h1>Gallery</h1> 
 
<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data'] ]) ?> 
 
    <?= $form->field($model, 'image[]')->fileInput(['multiple' => true]) ?> 
 
    <div class="form-group"> 
 
     <?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?> 
 
    </div> 
 
<?php 
 
ActiveForm::end(); 
 
?>  

код в модели

<?php 
 

 
namespace app\models; 
 

 
use Yii; 
 
use yii\web\UploadedFile; 
 
use yii\validators\FileValidator; 
 

 
/** 
 
* This is the model class for table "gallery". 
 
* 
 
* @property integer $id 
 
* @property string $image 
 
*/ 
 
class Gallery extends \yii\db\ActiveRecord 
 
{ 
 
    /** 
 
    * @inheritdoc 
 
    */ 
 
    public static function tableName() 
 
    { 
 
     return 'gallery'; 
 
    } 
 

 
    /** 
 
    * @inheritdoc 
 
    */ 
 
    public function rules() 
 
    { 
 
     return 
 
      [[['image'], 'file', 'extensions' => ['png', 'jpg', 'gif'], 'maxFiles' => 0], ] 
 
      ; 
 
    } 
 

 
    /** 
 
    * @inheritdoc 
 
    */ 
 
    public function attributeLabels() 
 
    { 
 
     return [ 
 
      'id' => 'ID', 
 
      'image' => 'Image', 
 
     ]; 
 
    } 
 

 

 
}

+0

что полный трассировки стека? то есть номер строки этой ошибки бросания в – Manquer

+0

\ app \ models \ Gallery (['image' => $ file-> baseName. '.'. $ file-> extension]); Здесь возникает ошибка. Вы помещаете $ config-Array в класс модели. Проверьте создание экземпляра модели. – MacGyer

+0

https://github.com/yiisoft/yii2/blob/master/framework/base/Object.php#L102 – MacGyer

ответ

0

Я не видел этот метод сохранения!

if ($file->saveAs($saveTo)) { 
    $model2 = new \app\models\Gallery(['image' => $file->baseName . '.' . $file->extension, 
        ]); 
    $model2->save(false); 
} 

ваш код должен выглядеть следующим образом:

if ($file->saveAs($saveTo)) { 
     $model2 = new \app\models\Gallery(); 
     $model2->isNewRecord = true; 
     $model2->image = $file->baseName . '.' . $file->extension;     
     $model2->save(false); 
} 
+0

Моя проблема решена. – CrashBurn

Смежные вопросы