将解码的json数据从控制器传递到视图时出错

时间:2018-05-05 06:04:54

标签: laravel laravel-5 laravel-4 laravel-5.2

当我在控制器中使用dd($arr)时,解码的json数据被正确打印。如何将此解码的json数据传递到我的视图中?

控制器代码

public function test()
{
    // $sld = $request['sld'];
    // $tld = $request['tld'];
    $response = Curl::to('https://reseller.enom.com/interface.asp?command=check&sld=decksys&tld=info&responsetype=xml&uid=resellid&pw=resellpw')
        ->get();

   //check if we are getting a response

 $xml = simplexml_load_string($response);
 $json   = json_encode($xml);

 $arr = json_decode($json, true);
 dd($arr);
 return view('clientlayout.main.test', compact('arr'));

}

刀片文件:

`{{ $arr }}` 

我的路线文件如下:

 Route::get('/test','EnomController@test');

如何解决此错误?

  

htmlspecialchars()期望参数1为字符串,给定数组为

2 个答案:

答案 0 :(得分:0)

return view('clientlayout.main.test', compact('arr'))->with('arr', $arr); 

和您的观点:{{ $data['obj'] }}将有效。

答案 1 :(得分:0)

此错误的答案已在堆栈上可用,您正在访问那些空或空白的对象,这里是解决方案的链接: htmlspecialchars expects parameter 1 to be string

确定控制器使用卷曲如:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
            "https://reseller.enom.com/interface.asp?command=check&sld=decksys&tld=info&responsetype=json&uid=resellid&pw=resellpw");
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_ENCODING, "gzip,deflate");
$arr  = json_decode(curl_exec($ch), true);
curl_close($ch);

然后返回数据进行查看,在视图中使用foreach循环,如:

@foreach($arr as $item)
    {{$item['Command']}}
    {{$item['APIType']}}
@endforeach

并想在打印使用之前检查:

@if(isset($item['Command']))
    {{$item['Command']}}
@endif

希望这个帮助