2015-06-02 2 views
0

Так вот мой код ...Создание шаблона XML для ответа приложения

$app->post(
    '/chk_db', 
    function() use ($app){ 
     require_once 'lib/mysql.php'; 
     $dx = connect_db('MyPhotos'); 

     //XML RESPONSE 
     $app->response->setStatus(0); 
     $res = $app->response(); 
     $res['Content-Type'] = 'application/xml'; 
     $view = $app->view(); 
     $view->setTemplatesDirectory('./'); 
     $oArray = array("Status"=> $dx.status, "code" => $dx.code); 
     return $app->render('chkdb.xml', $oArray); 
    } 
); 

Я хочу знать, как создать шаблон chkdb.xml, который может обрабатывать мой ввод .. Тогда будет выводить следующее. .

<MyPhotos> 
    <Status>success</Status> 
    <code>0</code> 
</MyPhotos> 

заранее спасибо ....

EDIT: Ответил .. Спасибо alexw

+0

Вы заглянули в Твиг? Должен быть способен визуализировать XML так же легко, как HTML. – alexw

+0

@alexw am новичок в этой области .. Я иду проверить, что twig out ... – Jhim

+0

Как поймать массив, переданный '$ app-> render ('some.xml, $ somearray)' в шаблоне xml ? как я обрабатываю этот массив ... – Jhim

ответ

1

Если вы используете Twig, вы можете просто использовать ключи массива в двойных фигурных скобках. Так что, если ваш somearray были:

$somearray = [ 
    "status" => "success", 
    "code" => 0, 
    "messages" => [ 
     "msg1" => "Hello", 
     "msg2" => "Goodbye" 
    ] 
]; 

Тогда вы просто сделать свой шаблон XML (template.xml):

<MyPhotos> 
    <Status>{{status}}</Status> 
    <code>{{code}}</code> 
    <messages> 
    {% for message in messages %} 
     <message>{{message}}</message> 
    {% endfor %} 
    </messages> 
</MyPhotos> 

И делают это:

$app->render("template.xml", $somearray); 

Чтобы использовать Twig с тонким, вы будете необходимо включить Slim-Views package. Инструкции по настройке находятся в README.

+0

Это хорошо .. но проблема в том, что я получил ошибки с помощью twig ...>. < (и да, я не знаю, как их использовать ... Знаете ли вы как поймать массив, пройденный рендером на шаблоне? Есть ли какой-нибудь код, который я могу использовать, поэтому я могу получить эти данные .... T^T Теперь я чувствую себя таким немым ... – Jhim

+0

Что вы означает, что вы получаете доступ к данным в '$ somearray' из шаблона? – alexw

+0

да да ... возможно? – Jhim

Смежные вопросы