2016-05-30 26 views
0

我一直在开发一个Web应用程序,它从数据库和打印中收集数据。我正在使用Laravel框架。我在下面显示了代码的使用。我可以直接在我的PHP代码中显示JSON响应,但是如果我尝试遍历JSON响应,我什么都得不到。使用Laravel框架在PHP中打印JSON响应

这是我如何生成使用Laravel外墙库中的JSON对象:

$worklogs = Response::json($data, $this->getStatusCode(), $headers); 

这里是我用来将数据传递到PHP页面的代码:

return view('index')->with('worklogs', $worklogs); 

我可以打印使用以下代码从PHP页面收集数据:

{{ $worklogs }} 

但是,如果我尝试遍历它,唱foreach环,如图所示出现错误:

error captured

在这个PHP页面是我如何编码的,但它不工作: captured index.blade.php file portion

+0

你不需要首先对json进行编码。 – jardis

+1

为什么你使用''Response :: json'''并返回'''view()'''我真的不明白吗? – xdevnull

+0

发布代码图片比将代码本身发布为文本没有用处。 –

回答

0

首先作为波格丹Bocioaca他回答说,你只有当你想返回JSON只(主要为API,以便其他应用程序可以访问您的JSON数据)使用Response::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 
+0

我以为我已经尝试过你的方式,但我想我一定有过错之前。 – Lakie

+0

嗯,我做了一个返回JSON的API。我正在制作网络和移动应用程序。两者都使用这些API。所以我想为视图和移动应用程序使用返回的json。所以我想转换为我的观点的JSON。但它是直接传递数据库数据的适当/安全的方式。请记住,我允许某些数据传递给模型。我正在尝试的一件事是将这些收集的数据放到模型中,并将模型传递给视图,那么这些更好的方法是什么? – Lakie

1

我不知道我的理解.. 首先这是如何返回一个JSON:

return Response::json([ 
    'hello' => $value 
], $headers); 

二:你是什么意思遍历JSON?第三:你的错误消息表明未定义的变量$ datas ..不是$ data,$ datas。你是否将$ data参数发送给视图?