好的,我看到会发生什么。 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);
的指令期望的,例如,在index.ctp你的XML文件夹下的文件,请查看/帖子里面:
$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();
?>
我知道不是最佳的解决方案。但我愿意接受更深思熟虑的答案。