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 和 XML 视图轻松制作 JSON 视图。通过使用内置的 XmlView,我们可以定义一个 _serialize 视图变量。这个特殊的视图变量用于定义 XmlView 应该序列化为 XML 的视图变量。
但是,如果您不使用内置视图,则可以像这样在视图中手动指定 XML(确保将_serialize
视图变量从edit
函数中取出,这样它就不会自动生成您的 XML)。
视图应如下所示:
$xml = Xml::fromArray(array('message' => $message));
echo $xml->asXML();
这将输出一个非常基本的 XML 文档,其中包含成功消息作为节点。您可以随意添加更多信息。例如,如果更新失败,您应该通过在 XML 响应中包含验证错误来告诉您的用户哪些内容未验证。