如何在CakePHP中测试JSON数据视图的输出?

时间:2013-03-02 19:12:43

标签: json debugging cakephp dataview requesthandler

所以我正在尝试创建一个Android移动应用程序,我正在使用CakePHP作为我的服务器端。我不需要任何HTML视图,我只会响应JSON对象。

我已经看了http://book.cakephp.org/2.0/en/core-libraries/components/request-handling.html#RequestHandlerComponent并且我已经创建了这个:

class LocationsController extends AppController
{
    public $helpers = array('Html', 'Form');
    public $components = array('RequestHandler');
    function index()
    {
        $locations = $this->Location->getNearest();
        $this->set(compact('locations'));
        $this->set('_serialize', array('locations'));
    }
}

我已将此添加到我的routes.php

Router::mapResources('locations');
Router::parseExtensions('json');

当我从默认的CakePHP布局样式中运行它时,没有显示任何内容。如果我删除index.ctp视图文件,我收到一个错误,它找不到视图文件。为什么它仍然需要一个视图文件?我认为使用序列化方法它不需要视图。我尝试过查看Google Chrome开发人员控制台,但没有包含JSON对象的响应。但是,MySQL的表现非常好。

2 个答案:

答案 0 :(得分:0)

$this->render(false);放在

之间
public $components = array('RequestHandler');

function index()

现在它不再需要index.ctp文件了。

有关详细信息,请参阅this link

答案 1 :(得分:0)

我只是使用REST API做了同样的事情,因为我想要JSON中的响应。 我做的是使用Chrome高级休息客户端。在那里,我通过使用适当的GET方法向我的localhost服务器发出请求,并且它成功了。

喜欢:GET /users/view/103.json

您将得到以下答复:

{"users":{"User":{"id":"103","username":"abc","password":"xyz",
 "email-id":"abc@xyz.com"}}}