我一直在开发一个从数据库和打印中收集数据的Web应用程序。我正在使用Laravel框架。我在下面显示了代码使用情况。我可以直接在我的PHP代码中显示JSON响应,但如果我尝试迭代JSON响应,我就无法得到任何东西。
以下是使用Laravel Facades库生成JSON对象的方法:
$worklogs = Response::json($data, $this->getStatusCode(), $headers);
以下是我用于将数据传递到PHP页面的代码:
return view('index')->with('worklogs', $worklogs);
我可以使用以下代码从PHP页面打印收集的数据:
{{ $worklogs }}
但如果我尝试使用foreach
循环迭代它,则会出现错误,如下所示:
在PHP页面中,这是我编码的方式,但它不起作用:
答案 0 :(得分:1)
我不确定我明白.. 首先,这是你如何返回一个json:
return Response::json([
'hello' => $value
], $headers);
第二:你是什么意思迭代jSon? 第三:您的错误消息表明Undefined变量$ datas ..不是$ data,$ datas。你是否将$ data参数发送到视图?
答案 1 :(得分:0)
首先,Bogdan Bocioaca在他的回答中说,当你只想返回Json时,你只使用 Response::json
函数(主要用于API,以便其他应用程序可以访问你的json数据) )。例如,下面的代码将返回可能由移动应用程序读取的JSON
$worklogs = WorkLog::all();
return Response::json([
'worklogs' => $worklogs
], $headers);
根据我对您的问题的理解,您希望将数据直接传递给视图,因此理想情况下您的代码应如下所示:
$worklogs = WorkLog::all();
return view('index',compact('worklogs'));
(请注意,上面我选择使用compact()
代替with->()
,因为它更干净)
然后,您可以按照自己的意愿迭代代码:
@foreach($worklogs as $worklog)
<td>{{$worklog->id}}</td>
<td>{{$worklog->name}}</td>
<td>{{$worklog->company}}</td>
@endforeach