2016-10-09 12 views
3

APIとしてLaravelとフロントエンドとしてAngularjsを使用してWebアプリケーションをプログラミングしています。私は情報の配列と製品イメージとしてのファイルを持つPUTメソッドを使って製品を更新するフォームを持っています。しかし、私はコントローラの入力要求を得ることができませんでした、それは空だった。ファイルとLaravelでデータの配列でPUTリクエストを送信する方法

参照してください以下のコード:

web.php(ルート)

Route::group(['prefix' => 'api'], function() 
{ 
    Route::put('products/{id}', '[email protected]'); 
}); 

マイangularjs製品サービス:

function update(productId, data, onSuccess, onError){ 
     var formData = new FormData(); 
     formData.append('imageFile', data.imageFile); 
     formData.append('image', data.image); 
     formData.append('name', data.name); 
     formData.append('category_id', data.category_id); 
     formData.append('price', data.price); 
     formData.append('discount', data.discount); 
     Restangular.one("/products", productId).withHttpConfig({transformRequest: angular.identity}).customPUT(formData, undefined, undefined, {'Content-Type': undefined}).then(function(response) { 

       onSuccess(response); 

      }, function(response){ 

       onError(response); 

      } 
     ); 
    } 

マイProductController更新機能

public function update(Request $request, $id) { 
// Just print the request data 
     dd($request->all()); 
    } 

これは私がこの問題であなたの経験を共有してください Put headerSended data Result was empty

inspectmen Chromeで見るものです。ありがとう。

+1

あなたのルート、ビュー、コントローラのコードスニペットを貼り付けてください。あなたがこれまでに試したことをお知らせください。これらの情報がなければ、誰もこの小さな情報を手助けすることはできません。 –

+0

私は質問を更新しました。見てください。ありがとうございました。 – user3322389

答えて

0

は、この方法を試してみてください:

public update(Request $request, $id) 
{ 
    $request->someVar; 
    $request->file('someFile'); 

    // Get variables into an array. 
    $array = $request->all(); 

また、あなたはあなたのルートをRoute::putまたはRoute::resourceを使用していることを確認してください。

+0

$ request-> all()は空です。助けてください! – user3322389

2

を使用して、「偽」PUT要求には、あなたのコードが正常に動作します、その後置く= _methodという名前の新しいフィールドでのみ、通常のPOSTリクエストです:

enter image description here

+0

POSTを使用して_methodという名前の隠れた入力テキストを使ってLaravelの偽のPUT –

関連する問題