我想将extern webservice中的数据放入我的SilverStripe网站。我可以在数组bij中获取数据:
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 %>
提前致谢。
答案 0 :(得分:1)
循环结构旨在迭代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;
}
您的&lt;%loop%&gt;然后,构造将遍历ArrayList:
<% loop getBlogs %>
$Me.Column1 is some column. So is $Column2.
<% end_loop %>