REST Почтальон запрос - PullRequest
       74

REST Почтальон запрос

1 голос
/ 06 февраля 2020

У меня есть запрос REST POST, который должен иметь следующий формат:

{
"data" : {
  "type" : "studies",
   "attributes" : {
   "age": "9999",
    "name": "XYZ"
  }
 }
}

Я хочу иметь возможность загрузить файл с запросом. поэтому мое тело запроса выглядит как это изображение.

My Post request

Дело в том, что в моем контроллере я ничего не могу обнаружить.

if($request->has('data.attributes.name'))  $name = $request->input('data.attributes.name')
if($request->has('data.attributes.age'))  $name = $request->input('data.attributes.age')

if($request->hasFile('data.attributes.file')){ 
  //Upload the file 
}

К сожалению, мой контроллер не может обнаружить эти атрибуты. Как мне ввести их в Почтальон?

Ответы [ 2 ]

1 голос
/ 06 февраля 2020

Точечный разделитель преобразуется в _. Таким образом, вы можете иметь:

{
    "data_attributes_file": "file",
    "data_attributes_name": "XYZ",
    "data_attributes_age": "999"
}
$request->has('data_attributes_file')
$request->has('data_attributes_name')
$request->has('data_attributes_age')

Если у вас все еще есть пустая страница или ошибка 519, вам нужно поставить CSRF токен в Cook ie, или кроме него.

app / Http / Middleware / VerifyCsrfToken

namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;

class VerifyCsrfToken extends Middleware
{
    /**
     * Indicates whether the XSRF-TOKEN cookie should be set on the response.
     *
     * @var bool
     */
    protected $addHttpCookie = true;

    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        '*',
    ];
}
0 голосов
/ 06 февраля 2020

Вы можете использовать синтаксис записи массива

data[attributes][file]
data[attributes][name]
data[attributes][age]

См. Пример enter image description here

...