2016-08-13 6 views
1

Я пытаюсь получить данные из API, который дает ответ, как так:доступа к данным в формате JSON с Laravel и жрать

{ 
    "data":[ 
     { 
     "first_name":"John", 
     "last_name":"Smith", 
     "group":"3", 
     "email":"[email protected]" 
     }, 
     { 
     "first_name":"John", 
     "last_name":"Doe", 
     "group":"3", 
     "email":"[email protected]" 
     } 
    ], 
    "meta":{ 
     "pagination":{ 
     "total":2, 
     "count":2, 
     "per_page":500, 
     "current_page":1, 
     "total_pages":1, 
     "links":[ 

     ] 
     } 
    } 
} 

Я пытаюсь использовать жрать импортировать в мое приложение Laravel

$client = new \GuzzleHttp\Client(); 
     $response = $client->request('GET', 'http://localhost/members.json'); 
     $data = (string) $response->getBody(); 

, а затем foreach, чтобы пересечь каждую запись, а затем добавить ее в базу данных. Прямо сейчас, хотя я изо всех сил пытаюсь разобраться в записи.

Что мне не хватает?

EDIT: Вот Еогеасп

foreach ($data['data'] as $person) { 
     Contact::create(array(
      'name' => $person->first_name, 
     )); 
     } 
+0

Параметр '$ data' переменная содержит, что вы показали JSON нам? –

+0

да, но я изо всех сил пытаюсь перевернуть его и передать значения от него к модели. –

+0

Вы запустили его через 'json_decode', а затем попытались сделать что-то вроде' foreach ($ data ['data'] как $ item) '? – Jonathon

ответ

4

Ваш $data переменная содержит JSON. Давайте сначала сделать это хороший массив, а затем цикл его через

$response = json_decode($data, true); 

Теперь сам цикл:

foreach($response['data'] as $element) { 
    $firstName = $element['first_name']; 
    $lastName = $element['last_name']; 
    $group = $element['group']; 
    $email = $element['email']; 
    //Now here you can send it to the modele and create your db row. 
} 
+0

Спасибо, Василь - это именно то, чего я отсутствовал :) –

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

  • Нет связанных вопросов^_^