Laravel Входной массив объектов в маршруты API - PullRequest
0 голосов
/ 25 января 2019

Я передаю следующий запрос в laravel api, но когда я выкидываю входной запрос, Laravel возвращает пустой массив.

{
  "expense_type" : "payment",
  "description" : "test",
  "notes" : "My notes",
  "expense_date": "2019-01-15",
  "cost" : 100.50,
  "group_id" : 1,
  "shares" : [
    {
        "user_id" : 1,
        "paid_share" : 100.50,
        "owed_share" : 00.00
    },
    {
        "user_id" : 2,
        "paid_share" : 00.00,
        "owed_share" : 50.25
    },
    {
        "user_id" : 3,
        "paid_share" : 00.00,
        "owed_share" : 50.25
    }
  ]
 }

Выход при выводе $request->all() равен []

может кто-нибудь помочь, если в запросе что-то не так

1 Ответ

0 голосов
/ 25 января 2019

Когда вы отправляете данные в запросе как данные json, тогда $request->all() всегда будет пустым.Чтобы получить доступ к данным в переменной $request->all(), вы должны отправить данные формы, а не данные json.

Таким образом, когда данные json отправляются через API, вы можете обращаться к ним как к массиву в контроллере следующим образом:

$data = json_decode(file_get_contents("php://input"), true);

Теперь вы можете получить доступ к таким значениям, как $data['expense_type']

Надеюсь, вы понимаете.

...