保存通过cakephp 2.3 serialize函数生成的xml文件

保存通过cakephp 2.3 serialize函数生成的xml文件,cakephp,Cakephp,我使用的是CakePHP2.3,使用的是食谱中的默认代码。xml是自动生成的,无需创建任何视图文件 class PostsController extends AppController { public function index() { $this->set(’posts’, $this->paginate()); $this->set(’_serialize’, array(’posts’)); } } 但是,我不想显示XML。相反,我希望在单击按钮后将生成的XML文

我使用的是CakePHP2.3,使用的是食谱中的默认代码。xml是自动生成的,无需创建任何视图文件

class PostsController extends AppController {
public function index() {
$this->set(’posts’, $this->paginate());
$this->set(’_serialize’, array(’posts’));
}
}

但是,我不想显示XML。相反,我希望在单击按钮后将生成的XML文件保存在文档根目录中,即Posts.XML。我该怎么做?请帮助。

您可能没有仔细查看:

它清楚地说明了如何通过响应对象发送具有适当头的文件

因此,在控制器操作中,添加:

$this->response->download('filename_for_download.xml');

你试过什么了吗?没有。我在食谱里搜索了一遍,在网上搜索了一遍。我不知道该怎么做。如果您能给我一些输入或线索,我可以立即尝试。我不知道您是想将文件保存到服务器,还是想强制下载客户端。实际上,我想将服务器上生成的XML文件保存为document_root/files文件夹中的posts.XML。谢谢Mark。我也复习了这一部分。不幸的是,我无法理解如何让这项工作。什么应该进入控制器,什么应该进入视图。目前,serialize函数不需要创建视图。我觉得这本食谱很难,因为除了简单的博客文章教程外,它只提供了非常小的代码片段,没有解决的示例或更完整的代码块。再读一遍!不过,为了完整起见,我更新了我的答案。非常感谢马克。这真的很有帮助。我可以看到生成的XML文件弹出窗口进行保存。是否可以将生成的文件自动保存到服务器webroot/files文件夹?请引导我。非常感谢你的快速帮助。我真的很感激!将其保存在webroot或任何其他文件系统文件夹中与您刚才描述的完全不同。是的,你可以把它全部渲染成一个字符串,然后你可以把它存储在某个地方。但这不会使它在默认情况下可以通过相同的控制器操作下载。你应该想想你到底想在这里做什么。谢谢马克。在webroot中保存XML文件是我最初想要的,我在最初的问题中提到了这一点。目前我可以下载文件时,它弹出保存。但是我想自动保存,因为有50多个表,整个模式需要保存为XML。因此,我希望自动将xml文件保存到wwwroot/files文件夹。如果你对此有任何建议,请告诉我。谢谢。