如何在维护MVC格式的同时使用laravel 5.5从api url读取JSON。
我已经搜索过很多关于它的信息,但找不到任何答案。
有很多方法可以使用ajax读取/发布JSON,但这会损害架构,所以我想使用controller来解析JSON然后传递给view。 或者是否有办法先将json解析为模型?
还有一个解决JSON的简单解决方案,虽然简单的PHP如下:
$rUrl = 'http://example.com/api/products';
$data = json_decode(file_get_contents($rUrl), true);
return view('mydata')->withData($data);
但在laravel中有没有更好的方法来处理这个问题? 在其他方面我可以保持标题和JSON结果在laravel?
是我的问题不明确请评论纠正。 任何帮助,将不胜感激。 在此先感谢!
答案 0 :(得分:1)
在laravel你可以去Guzzle Package。
https://github.com/guzzle/guzzle
如果您使用的是get请求,那么您可以使用file_get_contents.But如果您要发送帖子请求,那么您可以更好地使用curl
file_get_contents - 这是一个获取文件内容的函数(只需查看源项,即输出html文件内容)。
curl - 这是一个可以执行更多操作的库,例如获取像file_get_contents这样的内容,从一个站点向另一个站点发送和接收数据,它还支持不同类型的协议,如http, https,ftp,gopher,telnet,dict,file和ldap。 curl还支持HTTPS证书,HTTP POST,HTTP PUT,FTP上传基于HTTP表单的上传,代理,cookie。
如果您正在寻找mvc模式,那么您可以在helper类中创建静态方法来处理不同类型的请求,以便您可以调用这些方法
Guzzle文档
http://docs.guzzlephp.org/en/stable/
http://itsolutionstuff.com/post/laravel-guzzle-http-client-post-request-exampleexample.html
http://www.expertphp.in/article/laravel-php-guzzle-http-client-get-and-post-request-example