cakephp如何使用json从控制器发送数据

时间:2014-11-23 07:16:36

标签: php json api cakephp

您好我正在尝试创建一个API来发送使用json封装的数据。

正如cakephp手册所说,我在routes.php中添加了扩展名

$routes->extensions(['json]);

我在控制器中创建了一个索引函数。

public function index(){
    $item = $this->Items->find('all');
    $this->set(['items' => $items, '_serialize' => ['items']]);
}

这是问题所在。

我应该怎么做才能用json封装api ??

请帮忙。

谢谢

2 个答案:

答案 0 :(得分:0)

根据Cake 2.x Book(http://book.cakephp.org/2.0/en/development/rest.html

您必须将此添加到routes.php文件中:

Router::mapResources('items');
Router::parseExtensions();

然后,在项目控制器中,将RequestHandler添加到组件数组中:

public $components = array('RequestHandler');

然后,在您的项目控制器中,添加您的方法,在您的示例中:

public function index() {
    $recipes = $this->Items->find('all');
    $this->set(array(
        'items' => $items,
        '_serialize' => array('items')
    ));
}

注意:根据型号名称约定,您应该调用$ this-> Item而不是$ this->项目,除非您之前将模型名称定义为"项目" (单数)在您的项目模型文件中。

最后,API完成后,您可以访问yourprojecturl / items.json并查看json结果。

答案 1 :(得分:0)

我使用RicardoCamacho的代码时遇到问题,直到我使用Agent.Administrator = { isAdmin: false }; $recipes $this->Items->find('all');$this->set(array...

public function index() {
    $recipes = $this->Items->find('all');
    $this->set(array(
        'items' => $recipes,
        '_serialize' => array('items')
    ));
}