所以我试图创建一个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布局风格什么都没有显示。如果我去掉索引。ctp视图文件,我得到一个错误,它找不到视图文件。为什么还需要视图文件?我认为序列化方法不需要视图。我试着在谷歌Chrome开发人员控制台寻找,没有响应,包含JSON对象。然而,MySQL执行得非常好。
将$this->render(false);
放在
public $components = array('RequestHandler');
和
function index()
现在不需要索引了。CTP文件。
我只是做了同样的事情,使用REST API,因为我想要JSON中的响应。我所做的是使用Chrome高级休息客户端。其中,我使用适当的GET方法向本地主机服务器发出请求,并且成功了。
like: GET /users/view/103.json
您将得到如下响应:
{"users":{"User":{"id":"103","username":"abc","password":"xyz",
"email-id":"abc@xyz.com"}}}