Php Laravel在尝试循环json api响应时给出非法字符串偏移量
控制器Php Laravel在尝试循环json api响应时给出非法字符串偏移量,php,laravel,Php,Laravel,控制器 <?php namespace App\Http\Controllers; use Illuminate\Contracts\Foundation\Application; use Illuminate\Contracts\View\Factory; use Illuminate\Contracts\View\View; use Illuminate\Http\Client\RequestException; use Illuminate\Http\Client\Respons
<?php
namespace App\Http\Controllers;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
use Illuminate\Http\Client\RequestException;
use Illuminate\Http\Client\Response;
use Illuminate\Support\Facades\Http;
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Show the application dashboard.
*
* @return Application|Factory|View|Response
* @throws RequestException
*/
public function index()
{
$url = "http://dummy.restapiexample.com/api/v1/employees";
$response = Http::get($url);
if ($response->successful()) {
return view('welcome', ['dummy' => $response->json()]);
}
return $response->throw();
}
}
foreach非法字符串偏移量“employee\u name”中出现错误
将foreach更改为使用{{$item->employee\u name}
会导致尝试获取非对象的属性“employee\u name”时出错
打印$response对象会给我一个来自虚拟api的数据数组,因此人们应该认为能够像数组一样循环它
http://dummy.restapiexample.com/api/v1/employees
dummy api(如果需要)
运行最新的laravel版本时,您没有访问包含您试图循环的实际项目数组的数据索引:
@foreach($dummy['data'] as $item)
{{$item['employee_name']}}
@endforeach
在返回视图之前,但在if检查中,添加Log::info($response->json())
发送到控制器,然后查看日志文件中的内容,查看$dummy
将包含哪些内容。听起来它可能是一个一维数组。将数据转储到laravels debugbar中给了我一个答案,显然数组由一个状态和另一个名为data的数组组成,其中包含所有项,使用DigitalDrivers回答修复了它。是的,似乎数组有一个成功的对象,也有一个包含所有项的数据数组
@foreach($dummy as $item)
{{$item['employee_name']}}
@endforeach
@foreach($dummy['data'] as $item)
{{$item['employee_name']}}
@endforeach