我一直在关注本教程 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/