Laravel - Как получить доступ и управлять элементами массива JSON - PullRequest
0 голосов
/ 05 октября 2019

Может кто-нибудь научить меня, как я могу получить доступ к каждому элементу категории в массиве данных? PS: я публикую этот JSON с помощью Postman и пытаюсь манипулировать им с помощью метода контроллера проекта laravel.

Но я продолжаю получать эту ошибку:

ErrorException: Trying to get property 'data' of non-object

Нет проблем с моими маршрутамипоскольку я успешно использую запросы get и post для других простых процессов.

Я также использую Content-Type с заголовком application / json для отправки этого JSON с помощью программного обеспечения Postman.

Мой метод контроллера:

public function requestStore(Request $request) {

        //
}

JSON:

{
  "id": "126612213872902",
  "name": "Jack Daniel",
  "likes": {
    "data": [
      {
        "category": "Steakhouse",
        "id": "330668300343348"
      },
      {
        "category": "Steakhouse",
        "id": "793734850733472"
      },
      {
        "category": "Steakhouse",
        "id": "650634241797601"
      },
      {
        "category": "Steakhouse",
        "id": "146621545355340"
      },
      {
        "category": "Italian Restaurant",
        "id": "146805911480"
      },
      {
        "category": "Ice Cream Shop",
        "id": "545851225458015"
      },
      {
        "category": "Fast Food Restaurant",
        "id": "24540959832"
      },
      {
        "category": "Fast Food Restaurant",
        "id": "478890372318431"
      },
      {
        "category": "Fast Food Restaurant",
        "id": "78934590040"
      },
      {
        "category": "Korean Restaurant",
        "id": "553600018012159"
      },
      {
        "category": "Korean Restaurant",
        "id": "388180681558608"
      },
      {
        "category": "Chinese Restaurant",
        "id": "288066224573571"
      },
      {
        "category": "Chinese Restaurant",
        "id": "77730698813"
      },
      {
        "category": "Steakhouse",
        "id": "80555139083"
      },
      {
        "category": "Steakhouse",
        "id": "276973702580"
      },
      {
        "category": "Halal Restaurant",
        "id": "407606596237025"
      },
      {
        "category": "Malaysian Restaurant",
        "id": "337074526415500"
      },
      {
        "category": "Malaysian Restaurant",
        "id": "607366992933940"
      },
      {
        "category": "Malaysian Restaurant",
        "id": "523902944321612"
      },
      {
        "category": "Malaysian Restaurant",
        "id": "194113415406"
      },
      {
        "category": "Malaysian Restaurant",
        "id": "177159752316413"
      },
      {
        "category": "Malaysian Restaurant",
        "id": "705777492887089"
      },
      {
        "category": "Malaysian Restaurant",
        "id": "1545544055681553"
      },
      {
        "category": "Steakhouse",
        "id": "558487800860920"
      },
      {
        "category": "Steakhouse",
        "id": "129509727619"
      }
    ],
    "paging": {
      "cursors": {
        "before": "MzMwNjY4MzAwMzQzMzQ4",
        "after": "MTI5NTA5NzI3NjE5"
      }
    }
  }
}

1 Ответ

0 голосов
/ 05 октября 2019

Предполагая, что вы отправляете raw json через Postman, как это не забудьте установить тип в JSON enter image description here

Доступ к данным, как если бывместо массива

Route::post('/test', function () {
    $data = request()->all();
    foreach ($data['likes']['data'] as $key => $value) {
        dd($value['category']);
    }
});

Результат:
enter image description here

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...