2016-08-16 3 views
1

Я просто (для своих целей тестирования), пытаясь взять данные из коллекции и передать ее в представление. Я использую Laravel.Echo Data from Collection to Blade View

Я получаю данные от API GitHub, конвертируя его и помещая в коллекцию. Отсюда он передается в представление, но я не могу вывести каждое отдельное поле.

Вот код:

$httpClient = new Client(); 

$response = $httpClient->get('https://api.github.com/users/<randomuser>'); 

$json = json_decode($response->getBody(), true); 

$collection = collect($json); 

return view('github')->with('github', $collection); 

и мой файл Клинок

@foreach ($github as $git) 
    {{ $git }} 
@endforeach 

Теперь я думал, что это будет что-то так просто, как {{ $git->email }} к выходу, но я не думаю, что массив (?)

Может кто-нибудь указать мне в правильном направлении, где я иду не так?

Заранее спасибо.

-Крис

+0

Каковы результаты dd ($ git) (в лезвии) этой переменной? –

+0

Результатом этого является только '' cjmellor ''- это мое имя пользователя GH. –

ответ

1

Простого использование прибудет() в лезвии

$github->get('login') 
+0

Спасибо! Это то, что мне нужно. Не знал, что вы можете использовать такие вещи, как 'get()' в Blade. –

0

Попробуйте это в контроллере use View и в функции

$data['github_data'] = $collection; return view('github', $data);

и лезвия

{{ dd($github_data) }}

+0

Прошу прощения, это не сработало. Я получаю 'Неопределенная переменная: github_data'. Поскольку коллекция в основном представляет собой массив, я не уверен, почему я не могу перебрать каждое значение. –

+0

Просто проверьте файл 'config/app.php' и посмотрите, есть ли' 'View '=> Illuminate \ Support \ Facades \ View :: class,' находится в разделе псевдонимов. и получаете ли вы данные в контроллере, и можете ли вы его контактировать там? –

1

Потому что это ключ => Вэл массив , вы должны закодировать его как таковое ...

@foreach ($github as $key => $val) 
    Key: {{ $key }} ~~ Value: {{ $val}} <br /> 
@endforeach 

Однако, если вы хотите просто получить электронное письмо, используйте метод получения Collection. Метод

$email = $github->get('email') 
0

Когда вы работаете с Laravel попытаться проверить, если у вас есть правильная структура, прежде чем пытаться манипулировать ею.

В этом случае проверьте, что:

  • Вы получаете то, что вы ожидаете в $ ответа после вызова $httpClient->get (если вы используете жрать).
  • У вас есть $ json со структурой, которую вы ожидаете получить.
  • У вас есть экземпляр коллекции после звонка collect().

Вы можете использовать dd() или var_dump(), чтобы узнать, какая у вас структура данных. Что, вероятно, происходит, так это то, что у вас нет структуры, которую вы думаете.