从集合到 Blade View 的 Echo 数据

Echo Data From Collection to Blade View

我只是(出于我自己的测试目的)尝试从集合中获取数据并将其传递给视图。我正在使用 Laravel.

我正在从 GitHub API 获取数据,将其转换并放入集合中。它从这里传递到视图,但我无法输出每个单独的字段。

这是一些代码:

$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);

我的 Blade 文件是

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

现在我认为输出它会像 {{ $git->email }} 一样简单,但我认为数组键没有被发送 (?)

任何人都可以指出我出错的正确方向吗?

提前致谢。

-克里斯

试试这个, 在你的控制器 use View 和函数中

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

并在 blade

{{ dd($github_data) }}

因为它是一个键 => val 数组,所以你应该这样循环它...

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

但是,如果您只想获取电子邮件,请使用 Collection 的获取方法。

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

在 blade

中简单使用 get() 方法
$github->get('login')

当您使用 Laravel 时,尝试在尝试操作之前检查您的结构是否正确。

在这种情况下,检查:

  • 您在调用 $httpClient->get 后在 $response 中得到了您期望的结果(如果您使用的是 Guzzle)。
  • 您有一个 $json 结构符合您的期望。
  • 您在调用 collect().
  • 后拥有一个 Collection 实例

你可以用dd() or var_dump()看看你有什么数据结构。可能发生的情况是您没有您认为的结构。