我想将来自外部Web服务的数据放到我的SilverStripe网站中。我可以通过以下代码在数组中获取数据:
public function getBlogs(){
$service = new RestfulService("http://www.xxxxx.com/jsonservice/BlogWeb/");
$response = $service->request("getBlogs?token=xxxxx&id=250");
print_r(json_decode($response->getBody()));
}
这显示了我网站上正确的数据数组。但是我如何处理这些数据以在模板中使用它,例如:
<% loop getBlogs %>$Title<% end_loop %>
提前致谢。
循环构造旨在遍历ArrayLists和DataLists,该列表中的每个项目都旨在作为DataObject。由于json_decode返回一个PHP对象数组,因此您的函数getBlogs()将需要遍历该数组并构建一个描述每个博客的DataObjects ArrayList。
public function getBlogs() {
$blogs = ArrayList::create();
if($response && $response->getStatusCode() == 200 ) {
$data = json_decode($response->getBody());
foreach($blogs as $blog) {
$b = DataObject::create();
$b->Column1 = $data->blah;
$b->Column2 = $data->bloo;
$blogs->push($b);
}
}
return $blogs;
}
然后,您的<%loop%>构造将遍历ArrayList:
<% loop getBlogs %>
$Me.Column1 is some column. So is $Column2.
<% end_loop %>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句