我正在使用Laravel在MySQL中调用存储过程。我试图迭代返回的数据,但我似乎无法弄明白。我要么得到一个无效的参数foreach错误,要么html specialchars错误我不会在将JSON发送到视图之前对其进行编码
我的数据库电话:
$json = json_encode($data);
如果我将其返回视图
return view('my-view.index', compact('json'));
[ {
"ClientID":24,
"Name":"Client1",
"Balance1":null,
"Balance2":null
},
{
"ClientID":25,
"Name":"Client2",
"Balance1":24,
"Balance2":0
}]
我得到htmlspecial chars错误。行
所以我用:
@foreach ($json as $obj)
@for each ($obj as $client)
....
@endforeach
@endforeach
我收到这个JSON格式并将其发送到视图:
{{1}}
如何预测此循环以获取内部的键值对?
我试图迭代循环两次,但没有运气
{{1}}
答案 0 :(得分:0)
结构只有一层。
@foreach($json as $v)
{{ $v-> ClientID }} - {{ $v->Name }}
@endforeach
答案 1 :(得分:0)
你可以使用json decode
foreach (json_decode($json) as $a)
{
print_r($a); // this is your area from json response
}
或
foreach ($json as $a)
{
print_r($a); // this is your area from json response
}
答案 2 :(得分:0)
在您的控制器中,您可以创建一个获取数据并将其解码为如下数组的函数:
public function retrievingData($yourVariableHere){
$data='[ {
"ClientID":24,
"Name":"Client1",
"Balance1":null,
"Balance2":null
},
{
"ClientID":25,
"Name":"Client2",
"Balance1":24,
"Balance2":0
}]';
$data=json_decode($data,true);
return view('myViewFile',[
'data' => $data
]);
}
为了这个例子,我硬编码你的json只是为了使用你提供的数据。
在您的函数中,您将已解码的数组返回到刀片,您可以像这样回显结果:
@foreach ($data as $row)
Client Id: {{$row->ClientID}}<br>
Name : {{$row->Name}}<br>
Balance1 data: {{$row->Balance1}}<br>
Balance2 data: {{$row->Balance2}}<br>
@endforeach
在foreach循环中。
答案 3 :(得分:0)
任何人都需要这个答案。我不知道这是否正确,但它对我有用。我必须编码然后从服务器解码我的返回然后访问数组。
$data = DB::select('CALL sp_myproc');
$json = js_encode($data, true);
$arr = js_decode($data, true);
return view('myview.index', compact('arr'));
@foreach ($arr as $client)
{{$client['Name'}}
@endforeach