如何在Laravel中发送带有文件和数据数组的PUT请求

use*_*389 7 put laravel

我正在使用Laravel作为API和Angularjs作为前端对一个Web应用程序进行编程。我有一个使用PUT方法更新产品的表格,其中包含一系列信息和一个文件作为产品图像。但是我无法在控制器中获得输入请求,它是空的。

请参见下面的代码:

web.php(路线)

Route::group(['prefix' => 'api'], function()
{
    Route::put('products/{id}', 'ProductController@update');
});
Run Code Online (Sandbox Code Playgroud)

我的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);

            }
        );
    }
Run Code Online (Sandbox Code Playgroud)

我的ProductController更新功能

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

这就是我在Chrome检查器中看到的 放置标题发送数据 结果为空

请分享您在此问题上的经验。谢谢。

Yus*_*him 5

您需要的是只有具有新字段_method = put的普通POST请求,您的代码才能正常工作:

在此处输入图片说明