Blade 视图未呈现 xml
Blade View not rendering xml
我正在尝试在 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->merchant_url_text。
对我做错的任何帮助。
通常,blade 是用于呈现 html 和其他前端相关内容的模板引擎。我不认为您需要在 blade 文件中呈现 xml。相反,您可以直接从您的控制器 return xml 响应。
请试试这个包。
https://packagist.org/packages/jailtonsc/laravel-response-xml
编辑:
如果尝试使用 blade 构建站点地图或类似内容,请尝试以下代码。
<?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>' }}
您没有正确发送 header,这就是您的响应被解释为 text/html 的原因。在 Laravel 中,您可以使用 header 方法在将响应发送回用户之前将一系列 header 添加到响应中。 Here's how:
return response($content)
->withHeaders([
'Content-Type' => 'text/xml'
]);
我正在尝试在 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->merchant_url_text。
对我做错的任何帮助。
通常,blade 是用于呈现 html 和其他前端相关内容的模板引擎。我不认为您需要在 blade 文件中呈现 xml。相反,您可以直接从您的控制器 return xml 响应。
请试试这个包。
https://packagist.org/packages/jailtonsc/laravel-response-xml
编辑:
如果尝试使用 blade 构建站点地图或类似内容,请尝试以下代码。
<?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>' }}
您没有正确发送 header,这就是您的响应被解释为 text/html 的原因。在 Laravel 中,您可以使用 header 方法在将响应发送回用户之前将一系列 header 添加到响应中。 Here's how:
return response($content)
->withHeaders([
'Content-Type' => 'text/xml'
]);