Доступ к массиву JSON в контроллере Laravel - PullRequest
1 голос
/ 10 июля 2020

В настоящее время я немного застрял с некоторыми данными, которые мой Vue компонент отправляет моему Laravel контроллеру. Данные следующие:

array:2 [
  0 => {#1246
    +"id": 1
    +"name": "Developer"
  }
  1 => {#1249
    +"id": 2
    +"name": "Ops Matrix Admin"
  }
]

Например, если бы я хотел получить name или id из этого объекта как объект, чтобы я мог использовать его с красноречием. Как мне go это сделать?

Вот как сейчас выглядит мой контроллер.

  public function editUserPermissions(Request $request, $id) {
      foreach($request->all() as $key => $value) {
        $decode = json_decode($value);

        dd($decode);
    }
  }

Когда я делаю dd($request->all());, я получаю следующее:

array:1 [
  "body" => "[{"id":1,"name":"Developer"},{"id":3,"name":"Ops Matrix User"}]"
]

Ответы [ 2 ]

1 голос
/ 10 июля 2020

Вам нужно l oop через результат. Результатом является массив.

Лучше всего это получить с помощью $ request-> getContent ()

Но используя ваш код

public function editUserPermissions(Request $request, $id) {
      foreach($request->all() as $key => $value) {
        $decode = json_decode($value);

        foreach($decode as $decoded) {
            echo $decoded['id'];
        }
    }
  }
0 голосов
/ 10 июля 2020
public function editUserPermissions(Request $request, $id) {
      $bodys = $request->body;
      foreach($bodys as $key => $body) {
           //$key give current index of array 
           $body[$key]['id'] //this give id 
           $body[$key]['name'] //this give name 
      }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...