2015-07-17 2 views
1

Я решил обновить веб-сайт от Laravel 4.3 до Laravel 5.1, и у меня возникла странная проблема.Laravel 5 - DropzoneJS: объект запроса пуст

Я пытаюсь загрузить несколько изображений с помощью библиотеки DropzoneJS. Я рассказываю в этой библиотеке: «Перед отправкой изображений на /pictures/store (с помощью метода POJ AJAX) добавляет параметр album_id к запросу».

Эта часть работает, но в моем 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 

    } 

} 

Вот мой запрос объекта:

Request object

ничего ... И запрос Ajax Не содержащий:

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

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

It1DQQiXuiLJGwgJwx5UVXe1QEP7TsC1uovglxD2 
+0

Просто интересно, как вы обслуживаете параметр URL-адреса dropzone? У меня есть что-то вроде: url: "{{route ('addFileEntry', [])}}", - возможно, вам нужно добавить что-то подобное? –

+1

Dropzone автоматически получает URL-адрес, проверяя элемент '

'. Я не думаю, что этот маршрут является проблемой здесь, потому что запускается правильный контроллер/действие. – Flobesst

ответ

2

Ну, я нашел решение, но я уверен, что это не самый лучший.

В моей PictureController вместо того, чтобы параметр album_id так:

$request->input('album_id') 

Я использовал Input фасад подобное (Laravel 4 в стиле):

Input::get('album_id') 

И я не знаю, почему , но он работает! Если у вас есть лучшее решение, убедитесь, что я выберу ваш ответ как лучший. Между тем, мой самый лучший: D

Смежные вопросы