我正在尝试在Laravel中创建一个XML文件。我将数据传递给视图。
但是,XML无法呈现。
这就是我在视野中所做的事情
<?php header('Content-Type: text/xml'); ?>
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
@foreach ($merchants as $merchant)
<url>
<loc>{{ $merchant->merchant_url_text }}</loc>
</url>
@endforeach
</urlset>
然而,这只是多次打印变量$ merchant-&gt; merchant_url_text而没有任何结构。
对我做错的任何帮助。
答案 0 :(得分:3)
您没有正确发送标头,这就是您的响应被解释为text / html的原因。在Laravel中,您可以使用header方法向响应添加一系列标头,然后再将其发送回用户。 Here's how:
http://domain.com?q=page-slug to http://domain.com/page-slug
答案 1 :(得分:0)
通常,blade是一个模板引擎,用于渲染html和其他前端相关的东西。我不需要在您的刀片文件中呈现xml。相反,您可以直接从控制器返回xml响应。
请尝试此套装。
https://packagist.org/packages/jailtonsc/laravel-response-xml
编辑:
如果尝试使用刀片构建站点地图或类似内容,请尝试以下代码。
<?php header('Content-Type: text/xml'); ?>
{{ '<?xml version="1.0"?>' }}
{{ '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' }}
@foreach ($merchants as $merchant)
{{ '<url>' }}
{{ "<loc> $merchant->merchant_url_text </loc>" }}
{{ '</url>' }}
@endforeach
{{ '</urlset>' }}