2015-08-06 2 views
1

КонтроллерYii 2: Попытка получить свойство не-объекта в Yii2

public function actionCreate() 
    { 
     $model = new RoomTypes(); 
     if ($model->load(Yii::$app->request->post())) { 
      // get the uploaded file instance. for multiple file uploads 
      // the following data will return an array 
      $image = UploadedFile::getInstance($model, 'image'); 

      // store the source file name 
      $model->room_type = $image->name; 
      $imageName_1 = $model->room_type; 
      $ext = end((explode(".", $image->name))); 

      // generate a unique file name 
      $model->pic_1 = Yii::$app->security->generateRandomString().".{$ext}"; 

      // the path to save file, you can set an uploadPath 
      // in Yii::$app->params (as used in example below) 
      $path = Yii::$app->params['uploadPath'] . $model->pic_1; 

      if($model->save()){ 
       $image->saveAs($path); 
       return $this->redirect(['view', 'id'=>$model->_id]); 
      } else { 
       // error in saving model 
      } 
     } 
     return $this->render('create', [ 
      'model'=>$model, 
     ]); 
    } 

Модель:

public $image; 

[['image'], 'safe'], 
[['image'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg', 'maxFiles' => 4], 

Просмотр

<?= $form->field($model, 'room_type')->label(false)->textInput(['maxlength' => true]) ?> 


    <?php echo $form->field($model, 'image[]')->widget(FileInput::classname(), [ 
               'options'=>['accept'=>'image/*', 'multiple'=>true], 
               'pluginOptions'=>['allowedFileExtensions'=>['jpg','gif','png'] 
'slugCallback' => new JsExpression(function(room_type) 
{return room_type;},),]]); 
             ?> 

Получение этой ошибкипри загрузке файла. Также он не принимает несколько изображений для загрузки, что с этим не так? Как достичь этой загрузки нескольких файлов ???

+0

не создают еще одну переменную '$ image' просто использовать [[ 'изображение'], 'Файл', ' skipOnEmpty '=> false,' extensions '=>' png, jpg ',' maxFiles '=> 4] и зацикливать их для хранения нескольких изображений. –

+0

сделали исправления, но все равно такую ​​же ошибку :( – JKLM

+0

вы можете показать ошибки ... –

ответ

-1

Вы missprint в правила модели:

[['$image'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg', 'maxFiles' => 4], 

Должно быть

[['image'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg', 'maxFiles' => 4], 
+0

все та же ошибка :( – JKLM