2017-01-19 13 views
0

ファイルのアップロードに問題があります。 [保存]を押します。次に、メッセージ「Bad Request(#400)Missing required parameters:id」というエラーメッセージが表示されます。Yii2アップロード|不正リクエスト(#400)必要なパラメータがありません:

私は$ model-> save(false)を試していました。しかし私がそうするとき、イメージだけでなく、テキストをアップロードします。

enter image description here

ファイルのバックエンド\ビュー\アルバム\ _form.php

<?= $form->field($model, 'file')->widget(FileInput::classname(), [ 
 
    'options' => ['accept' => 'image/*'], 
 
    'pluginOptions' => [ 
 
     'initialPreview'=>[], 
 
     'allowedFileExtensions'=>['jpg', 'png','gif'], 
 
     'showPreview' => true, 
 
     'showRemove' => true, 
 
     'showUpload' => false 
 
    ] 
 
    ]); ?>

ファイルのバックエンド\モデルがAlbum.php

public static function tableName() 
 
    { 
 
     return 'album'; 
 
    } 
 

 
    /** 
 
    * @inheritdoc 
 
    */ 
 
    public function rules() 
 
    { 
 
     return [ 
 
      [['album_name', 'album_detail', 'album_cover', 'album_create', 'album_status'], 'required'], 
 
      [['album_create'], 'safe'], 
 
      [['album_status'], 'string'], 
 
      [['file'],'file'], 
 
      [['album_name', 'album_cover'], 'string', 'max' => 100], 
 
      [['album_detail'], 'string', 'max' => 255], 
 
     ]; 
 
    }
を\しますの

ファイルバックエンド\コントローラはAlbumController.php

actionCreate() u're save()が成功したかどうかをチェックしませで

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

 
     if ($model->load(Yii::$app->request->post())) 
 
     { 
 
      // get the instance of the uploaded file 
 
      $imageName = $model->album_name; 
 
      $model->file = UploadedFile::getInstance($model,'file'); 
 
      $model->file->saveAs('uploads/'.$imageName.'.'.$model->file->extension); 
 

 
      // save the path in the db column 
 
      $model->album_cover = 'uploads/'.$imageName.'.'.$model->file->extension; 
 
      $model->save(); 
 

 
      return $this->redirect(['view', 'id' => $model->id]); 
 
     } else { 
 
      return $this->render('create', [ 
 
       'model' => $model, 
 
      ]); 
 
     } 
 
    }

+0

uはURLを表示することができますか? – Yupik

答えて

0

を\します。追加:ちょうど

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

休暇:

if($model->save()) { 
    return $this->redirect(['view', 'id' => $model->id]); 
} 

からelse文を削除

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

をPropablyモデルは、uは、検証せずにそれを保存$model->save(false)言ったようにそれを実行し、保存されていません。 $model->save()または$model->validate()た後、それが最も簡単な方法で、保存していない理由をデバッグしよう:uは不正な要求400を取得する場所

var_dump($model->errors);die; 
関連する問題