假设我有以下功能:
function fruit ($request) {
...
$response = array('apple' => '1dollars', 'mango' => '2dollars');
return json_encode($response);
}
我想在模板中访问类似$response.apple
的内容。
我尝试过以下操作,但这不起作用,因为我的页面上没有显示任何内容:
<% control response %>
<h1>$response.apple<h2>;
<% end_control %>
如果我尝试从模板中访问函数fruit
,
fruit
给我一个错误。 fruit(request)
也给了我一个错误。
但是,如果我去结果我的数据绝对正确:
["apple":"1dollar","mango":"2dollar"]
答案 0 :(得分:1)
你需要做两件事:
更像是:
function fruit ($request) {
...
return $this->customise(array(
'response' => new ArrayData(array(
'apple' => '1dollars',
'mango' => '2dollars'
));
))->renderWith(array('YourTemplate'));
}
请注意,“响应”的命名在那里完全是任意的。另一种可行的方法是在控制器上使用“响应”方法(显然我会将其命名为不同的名称,我只是为了清晰起见而保留名称):
public function response() {
return new ArrayData(array(
'apple' => '1dollars',
'mango' => '2dollars'
));
}
在这种情况下,您只需在操作中返回以下内容:
return $this->renderWith(array('MyTemplate'));