2013-10-15 3 views
0

Я хочу отправить xml-ответ от моего действия контроллера cakephp. Я пытался следовать официальное руководство: http://book.cakephp.org/2.0/en/views/json-and-xml-views.htmlОтправка xml ответа от cakephp

Но я получаю эту ошибку:

Missing View 

Error: The view for ServicesController::index() was not found. 

это то, что мой контроллер услуг выглядит следующим образом:

<?php 
class ServicesController extends AppController { 

    var $uses = array(); 
    var $components = array('Auth','Session','RequestHandler'); 

    function beforeFilter() { 
     $this->Auth->allow('index'); 
    } 

    function index(){ 
     $output = array(
      "status" => "OK", 
      "message" => "You are good" 
     ); 

     $this->set('output', $output); 
     $this->set('_serialize', array("output")); 
    } 
} 
?> 

Я также добавил следующая строка к моему routes.php

Router::parseExtensions('json', 'xml'); 

что может быть тем, что я делаю неправильно?

+0

Первоначально я ответил, что вам просто нужно создать файл представления, но это, кажется, я был неправ - в соответствии с книга, по крайней мере, вам не нужна. – Dave

+0

точно! есть еще одна ссылка, которую я нашел, которая также говорит то же самое: http://yihangho.com/cakephp-json-and-xml-response-explained/ –

+3

Вы забыли добавить расширение .xml к своему URL-адресу (http: //example.com/services/index.xml)? –

ответ

-1

Вы можете попытаться преобразовать массив в XML, эхо выход и выход из функции:

function index(){ 
    $output = array(
     "root" => array(// It needs one top element (http://book.cakephp.org/2.0/en/core-utility-libraries/xml.html#transforming-an-array-into-a-string-of-xml) 
      "status" => "OK", 
      "message" => "You are good" 
     ) 
    ); 

    $xmlObject = Xml::fromArray($output); 
    echo $xmlObject->asXML(); 
    exit; 
} 
Смежные вопросы