php – Slim Framework – >创建XML输出
发布时间:2020-12-13 17:18:20 所属栏目:PHP教程 来源:网络整理
导读:如何创建一个为RSS流输出真实 XML内容的视图.我正在使用SLIM,TWIG与巴黎和Idiorm结合进行模板化. 就像是 : $app - get('/rss/',function() use ($app) {$articles = Model::factory('Article') - order_by_desc('timestamp') - find_many();return $app - r
如何创建一个为RSS流输出真实
XML内容的视图.我正在使用SLIM,TWIG与巴黎和Idiorm结合进行模板化.
就像是 : $app -> get('/rss/',function() use ($app) { $articles = Model::factory('Article') -> order_by_desc('timestamp') -> find_many(); return $app -> render('rss.xml',array('articles' => $articles)); }); 使用此Template layout.xml: <?xml version="1.0" encoding="UTF-8"?> {% block content %} {% endblock %} 这个特殊的路线RSS模板: {% extends 'layout.xml' %} {% block content %} <blog_content> {% for article in articles %} <article> <article_id>{{ article.id }}</article_id> <article_headline>{{ article.title }}</article_headline> <article_author>{{ article.author }}</article_author> <article_timestamp>{{ article.timestamp }}</article_timestamp> <article_summary>{{ article.summary }}</article_summary> <article_link>http://slim.phaziz.com/article/{{ article.id }}/</article_link> </article> {% endfor %} </blog_content> {% endblock %} 将显示为HTML Doument,其中包含模板作为正文文本… ??? Thanx帮忙! 解决方法
更新:这个答案在Slim版本3中不再适用.
您必须在/ rss / route中覆盖对text / xml的响应的Content-Type HTTP标头: $app -> get('/rss/',function() use ($app) { $articles = Model::factory('Article') -> order_by_desc('timestamp') -> find_many(); $app->response->headers->set('Content-Type','text/xml') return $app -> render('rss.xml',array('articles' => $articles)); }); http://docs.slimframework.com/response/headers/ 编辑:如果生成的XML是100%RSS,请改用application / rss xml content-type. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |