刀片视图不呈现 xml

Gau*_*hta 2 laravel laravel-blade laravel-5.3

我正在尝试在 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>
Run Code Online (Sandbox Code Playgroud)

然而,这只是在没有任何结构的情况下多次打印变量 $merchant->merchant_url_text 。

对我做错了什么的任何帮助。

Joh*_*pit 5

您没有正确发送标头,这就是为什么您的响应被解释为 text/html 的原因。在 Laravel 中,您可以使用 header 方法在将响应发送回用户之前向响应添加一系列标头。方法如下

return response($content)
        ->withHeaders([
            'Content-Type' => 'text/xml'
        ]);
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!有效。我使用 return response()-&gt;view('sitemap', compact('merchants'))-&gt;header('Content-Type', 'text/xml'); 从我的控制器传递数据。 (4认同)