我正在使用cakephp2.2版本,我按照网址http://book.cakephp.org/2.0/en/development/rest.html提供的文档
现在,在编辑方法中,包含编辑表单的edit.ctp
将放置在views/receip/xml/.
当我将编辑表单放在Views/Receip/xml/
文件夹中时,会生成xml类型的表单:
每个人都为索引方法代码编写代码,但没有人为编辑方法代码编写代码。有人可以指导如何编写编辑方法,所以如果我发送recipes/edit/1.xml
我会得到填充数据的html表单吗?
答案 0 :(得分:1)
XML视图应该看起来非常接近示例中的索引视图,除了它正在吐出的变量。
我假设您使用的是与示例中相同的编辑功能:
public function edit($id) {
$this->Recipe->id = $id;
if ($this->Recipe->save($this->request->data)) {
$message = 'Saved';
} else {
$message = 'Error';
}
$this->set(array(
'message' => $message,
'_serialize' => array('message')
));
}
正如书中所述:
您还可以使用CakePHP内置的JSON和JSON轻松制作JSON视图 XML视图。通过使用内置的XmlView,我们可以定义一个_serialize 查看变量。此特殊视图变量用于定义哪个视图 变量XmlView应序列化为XML。
但是,如果您没有使用内置视图,则可以像这样在视图中手动指定XML(确保从_serialize
函数中取出edit
视图var,以便它不会自动生成您的XML。)
视图应如下所示:
$xml = Xml::fromArray(array('message' => $message));
echo $xml->asXML();
这将输出一个非常基本的XML文档,并将成功消息作为节点。您可以随意添加更多信息。例如,如果更新失败,您应该通过在XML响应中包含验证错误来告诉用户未验证的内容。