2016-07-27 12 views
1

複数のファイルがyii2を使用してアップロードされていないため、データがデータベースに保存されません。このエラーを表示していますhtmlspecialchars()は、パラメータ1が配列であると想定しています。複数ファイルのアップロードがyii2で機能しない

MYFORM:

echo $form->field($model, 'product_img[]')->fileInput(['multiple' => true]); 

モデル:

{ 
    return [ 

    [['product_img'],'file', 'maxFiles' => 2], 
    ]; 
} 

コントローラー:あなたのコントローラのアクションの行に続き

public function actionCreate() 
{ 
    $model = new Product(); 

    if ($model->load(Yii::$app->request->post())) { 

     $model->file = UploadedFile::getInstances($model, 'product_img'); 
     foreach ($model->file as $file) { 

     $model2 = new Product(); 

     $model2->load(Yii::$app->request->post()); 
     $model2->product_img='uploads/' . $file; 


     $sql = 'INSERT INTO `product`(`p_id`, `category`, `sub_category`, `product_img`, `product_name`) VALUES (Null,"'.($model2->category).'","'.($model2->sub_category).'","'.($model2->product_img).'","'.($model2->product_name).'")'; 
     $command = \Yii::$app->db->createCommand($sql); 
     $command->execute(); 
      $file->saveAs('uploads/' . $file->baseName . '.' . $file->extension); 

     } 
       return $this->render('view', [ 
       'model' => $model, 
       ]); 

    } else { 
     return $this->render('create', [ 
      'model' => $model, 
     ]); 
    } 
} 
+0

[Yii2を使用してファイルにアクセスする場合](http://www.yiiframework.com/doc-2.0/guide-input-file-upload.html#uploading-multiple-files) –

+0

私のために働いていない。 –

+0

@IlakkiyaM投稿された答え。 –

答えて

2

が間違っている

$model2->product_img='uploads/' . $file; 

$fileは対象ではない文字列です

あなたは

$model2->product_img = 'uploads/' .$file->baseName; 

にその行を変更する必要があります。または、後で複数のファイルをアップロードし、このコラム

$model2->product_img = 'uploads/' .$file->baseName . '.' . $file->extension; 
関連する問題