php - CakePHP RestFul WebService 正确的文档和可下载的代码

标签 php rest cakephp-2.0

我一直在关注本教程 http://book.cakephp.org/2.0/en/development/rest.html一遍又一遍地与 cakephp 进行 Restful Web 服务集成,似乎它不能满足我的目的,因为 xml 自动构造存在一些问题(可能是错误的文档?)

无论如何,我的问题更多的是请愿书。您是否知道与在 cakePHP 2.0 框架上创建 Rest Web 服务相关的良好可下载示例?你知道,在那里你可以看到代码、结构等等。一个简单但很好的例子。

最佳答案

好的,我知道会发生什么。 cakePHP 查询结果数组构造与 xml 帮助器期望看到它以正确创建 xml 文件的形式之间存在问题。例如,您构造一个数组来获取所有帖子 ($posts = $this->Post->find('all');)

这就是你得到的:

   $posts = array(
    'post' => array(
        array(
            'id' => '1',
            'tittle' => 'The title'
        ),
        array(
            'id' => '2',
            'tittle' => 'A title once again'
       )
    )
);

这就是 cakePHP 上类似 $xml = Xml::build($xmlPosts); 的指令,例如,在 View/Posts 内的 xml 文件夹下的 index.ctp 文件中:

$posts = array(
  'posts' => array(
    'post' => array(
        array(
            'id' => '1',
            'tittle' => 'The title'
        ),
        array(
            'id' => '2',
            'tittle' => 'A title once again'
        )
    )
  )
);
$xml = Xml::build($post);

问题的产生是因为 XML 解析器需要数组中的根元素。

cakePHP 的文档并没有告诉你这一点。因此,如果您是本说明书的初学者,请谨慎遵循有关 REST 服务的示例。

您可以通过在index.ctp xml 构造函数中进行数组重新排列来解决问题。像这样的事情:

<?php
$xmlPosts = array('posts' => array('post' => $posts));
$xml = Xml::build($xmlPosts);
echo $xml->saveXML();
?>

我知道这不是最佳解决方案。但我愿意接受更深思熟虑的答案。

关于php - CakePHP RestFul WebService 正确的文档和可下载的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8211483/

相关文章:

python - Python 中的 REST API 与 FastAPI 和 pydantic : read-only property in model

php - Cakephp 和 Mysql 中的 Unicode 字符问题

php - 如何将网址更新到搜索引擎和其他更新服务

php - 如何使用密码保护网站上可下载的 pdf 文件

php - 如何为我所有的 symfony Controller 创建基类

php - codeigniter 多个 OR 查询

cakephp - 将 php 库导入 Cakephp

php - 如何检查函数是否可以使用参数调用?

java - 在这种情况下,我们需要使用 HttpClient 和其他网络服务

java - 处理 Rest API 的大响应