0
我試圖將cakephp請求對象中的所有表單數據轉換爲xml,然後將其轉換爲字符串,以便我可以將它放在mysql中的一個(blob)列中表。在cakephp中將表單請求數據轉換爲xml
我想在CakePHP 2.x.x中使用buildin xml構建器來執行此操作,如下所示,但出現錯誤。
if ($this->request->is('post')) {
$this->Survey->create();
$xml = Xml::build($this->request->data);
}
的形式示出下面
<?php echo $this->Form->create('Survey'); ?>
<fieldset>
<legend><?php echo __('Add Survey'); ?></legend>
<?php
echo $this->Form->input('Question 1');
echo $this->Form->input('Question 2');
echo $this->Form->input('Question 3');
?>
</fieldset>
<?php echo $this->Form->end(__('Submit')); ?>
我發現了該錯誤似乎是由於DOCDocument->的createElement(字符串,字符串)在堆棧跟蹤。我也使用過其他方法,包括手動構建,如下所示:
$doc = new DOMDocument('1.0');
$doc->formatOutput = true;
$doc->loadHTML($this->request->data);
$data = $this->request->input('Xml::build',
array('return' => 'domdocument'));
while(list($key,$value) = each($this->request->data)){
$data = $data . $key . $value;
}
if(isset($this->request->data)){
$doc = new DOMDocument('1.0');
$doc->formatOutput = true;
$root = $doc->appendChild($doc->createElement('survey'));
$post = $this->request->data['Survey'];
unset($post['submit']);
foreach($post as $key => $value){
$node = $doc->createElement($key,$value);
$root->appendChild($node);
}
$test1 = $doc->saveXML();
任何幫助,將不勝感激。謝謝。
我收到錯誤消息。它說,當我做$ xml = Xml :: build($ this-> request-> data,array('return'=>'simplexml'))時發生內部錯誤。 – Hairlock
沒關係,我更仔細地閱讀文檔,並意識到我發送了無效的xml。感謝您的回覆。 – Hairlock