Hi everyone,

I am trying to build a nice REST API for my website and I had never tried 
it through CakePHP. I started to follow the (short) instructions, however, 
the way it works looks totally different from what I can read in the 
Cookbook.

I use CakePHP 2.2.1.

Here's what I've done so far:

*app/Controller/OrdersController.php*
<?php
class OrdersController extends AppController {
public function fetch($accountId) {
$this->loadModel('Account'); 
$this->Account->id = $accountId;
 $orders = $this->Order->find('all', array(
'conditions' => array('Order.account_id' => $accountId)
));
 $response = $orders;
 $this->set(compact('response'));
}
}

*app/View/Orders/xml/fetch.ctp* 
<?php
$xml = Xml::fromArray(array('orders' => $orders));
echo $xml->asXML();

I tried this with the first account and everything was fine

*Ouput:*
<orders>
<Order>
<id>502cc39f-5b74-4a25-9bb2-670458d0d2b2</id>
<order_ref>96277</order_ref>
<account_id>502cc39d-8640-465a-b0da-670458d0d2b2</account_id>
<created>2012-08-16 09:55:43</created>
<modified>2012-08-16 09:55:43</modified>
</Order>
</orders>

Everything is fine with an account that has one order.

However, with an account that has several orders, this doesn't work anymore.

*Expected output:*
<orders>
<Order>
<id>502cc39f-66eb-59d2-2337-670458d0d2b2</id>
<order_ref>96255</order_ref>
<account_id>502cc39d-6325-ad25-5b64-670458d0d2b2</account_id>
<created>2012-08-16 09:42:33</created>
<modified>2012-08-16 09:42:33</modified>
</Order>
<Order>
<id>502cc39f-ee21-3c89-8120-670458d0d2b2</id>
<order_ref>96231</order_ref>
<account_id>502cc39d-6325-ad25-5b64-670458d0d2b2</account_id>
<created>2012-08-16 09:21:01</created>
<modified>2012-08-16 09:21:01</modified>
</Order>
</orders>
*
*
*What I get:*
This page contains the following errors:
error on line 1 at column 367: Entity 'nbsp' not defined 
Below is a rendering of the page up to the first error.*Warning* 
(2)<http://devapi.ssl247.net/orders/fetch/502cc1be-7e48-4913-89c2-65f058d0d2b2.xml>:
 
SimpleXMLElement::__construct() 
[simplexmlelement.--construct<http://devapi.ssl247.net/orders/fetch/simplexmlelement.--construct>]:
 
Entity: line 3: parser error : Extra content at the end of the document [*
CORE\Cake\Utility\Xml.php*, line 
*197*]Code<http://devapi.ssl247.net/orders/fetch/502cc1be-7e48-4913-89c2-65f058d0d2b2.xml>
 
Context<http://devapi.ssl247.net/orders/fetch/502cc1be-7e48-4913-89c2-65f058d0d2b2.xml>

I assume that Xml::fromArray() doesn't accept multiple numeric keys. Or 
something like this. I don't mind editing my PHP array to get he XML I 
expect but I really don't know how I should write my array for this :-(

Any help is welcome.

Thank you!!

Alex

-- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
Visit this group at http://groups.google.com/group/cake-php?hl=en-US.


Reply via email to