Laravel 5 - DropzoneJS:请求对象为空

Laravel 5 - DropzoneJS: Request object is empty

我决定将网站从 Laravel 4.3 升级到 Laravel 5.1,但我遇到了一个奇怪的问题。

我正在尝试使用 DropzoneJS 库上传一些图片。我告诉这个图书馆:"Before sending the pictures to /pictures/store (with an Ajax POST method), adds the album_id parameter to the request".

这部分工作正常,但在我的 PictureController 中,store 操作采用了一个 Request 对象,该对象保持为空,而不是包含所有输入和许多其他内容。

查看:

{!! Form::open(['url' => '/pictures/store', 'class' => 'dropzone', 'id' => 'myAwesomeDropzone']) !!}
    {!! Form::hidden('album_id', $album->id) !!} // Gives a correct value here
{!! Form::close() !!}

JS:

var token = $('meta[name="csrf-token"]').attr('content');

Dropzone.options.myAwesomeDropzone = {
    paramName : 'file',
    maxFilesize : 8, // Mo
    acceptedFiles : 'image/*',
    headers : {
        'X-CSRF-TOKEN' : token
    },
    sending : function(file, xhr, formData) {
        formData.append('album_id', $('form input[name=album_id]').val()); // Still a correct value here
    },
    success : function(file, response) {
        console.log(response); // Will display the Request object (see controller)
    },
    error : function(file, error) {
        console.error(error);
    }
}

控制器:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class PictureController extends Controller {

    public function store(Request $request) {

        return response()->json(['request' => $request]); // Returns the Request object

    }

}

这是我的请求对象:

不包含任何内容...并且 Ajax 请求:

-----------------------------98052356720717
Content-Disposition: form-data; name="album_id"

1
-----------------------------98052356720717
Content-Disposition: form-data; name="_token"

It1DQQiXuiLJGwgJwx5UVXe1QEP7TsC1uovglxD2

好吧,我找到了解决方案,但我很确定这不是最好的。

在我的 PictureController 中,而不是像这样获取 album_id 参数:

$request->input('album_id')

我使用了 Input 外观(Laravel 4 的风格):

Input::get('album_id')

我不知道为什么,但它有效!如果您有更好的解决方案,请确保我会选择您的最佳答案。与此同时,我的是最好的 :D