2015-06-02 78 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> 

感谢....

编辑:回答..谢谢alexw

+0

你看过Twig吗?应该能够像HTML一样容易地呈现XML。 – alexw

+0

@alexw是这方面的新手。我去检查小枝了...... – Jhim

+0

我怎么赶过去了阵列的'$ APP->渲染('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); 

要搭配修身使用枝条,你会需要包括Slim-Views package。配置说明在README中。

+0

这是一件好事。但问题是,我用树枝...>有错误。< (是的,我不知道如何可以使用它们... 你知道如何捕捉通过模板上的渲染通过阵列? 是否有任何的代码,我可以使用,所以我可以得到这些数据.... T^T 我感觉很愚蠢,现在... – Jhim

+0

你这是什么意思是“catch”?你的意思是,从模板中访问'$ somearray'中的数据? – alexw

+0

是的是的......这是可能的吗? – Jhim