我要制作一个与移动应用程序协作的CakePHP应用程序。移动应用程序将查询CakePHP应用程序以检查某些优惠券是否有效。我需要更改我的一些视图,使其输出为json格式,以便轻松地通过移动应用程序进行解析。
具体来说,如果移动应用程序调用{{1}} Cake应该返回这样的内容作为响应:example.com/vouchers/check/1234
或{"validity":"valid"}
,这是检查ID为1234的凭证有效性的结果。
答案 0 :(得分:0)
基本上,您应该在期望非HTML响应时使用扩展(在这种情况下为JSON) 请求
/vouchers/check/1234.json
并按照文档和ajax-and-cakephp教程使用JsonView。
使用此选项可以启用json扩展名:
Router::parseExtensions();
Router::setExtensions(array('json', ...));
不要忘记在控制器$ components列表中包含RequestHandler组件。
将此添加到您的操作中:
$data = array(
'validity' => ...,
);
$this->set(compact('data')); // Pass $data to the view
$this->set('_serialize', 'data'); // Let the JsonView class know what variable to use