我尝试生成一个xml,但我得到一个错误:FatalErrorException in 6955f07d83b93bb8aa89577b116866e228e0c155.php line 1 syntax error, unexpected 'version' (T_STRING).
我不知道我在代码中做错了什么。
我的控制器功能是:
public function feed($gallery_id){
$products = Products::select("id","title","brand","url","path")->where("gallery_id",$gallery_id)->get();
foreach ($products as $product) {
$product->path = url($product->path);
}
return response()->view('xml.gallery', compact('products'))->header('Content-Type', 'text/xml');
}
我的刀片(xml.gallery):
<?xml version="1.0"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
<channel>
<title>Test Store</title>
<link>http://domain.com</link>
<description>An example item from the feed</description>
@foreach($products as $product)
<item>
<g:id>1</g:id>
<g:title>something</g:title>
<g:description>Solid plastic Dog Bowl in marine blue color</g:description>
<g:link>http://www.zara.com</g:link>
<g:image
_link>http://domain.com/images/photos_gallery/14788772681.png</g:image_link>
<g:price>12 GBP</g:price>
<g:brand>Nike</g:brand>
<g:availability>in stock</g:availability>
<g:condition>new</g:condition>
</item>
@endforeach
</channel>
</rss>
3条答案
按热度按时间qv7cva1a1#
看起来
short_open_tag
已经被启用了。它告诉PHP是否应该允许PHP的开始标记的缩写形式(<? ?>)
。如果你想将PHP与XML结合使用,你可以禁用这个选项以便内联使用<?xml ?>
。但其他简单的解决方案是在视图文件中编写以下代码:
yv5phkfx2#
我们解决这个问题的方法是将xml头存储为变量,然后传递沿着:
然后你可以把它放进你的刀片里:
qqrboqgw3#
试试这个从Laravel刀片文件返回XML响应。像数字海洋这样的云主机不需要这个,你可以把XML作为HTML标签返回。但是cPanel主机显示了一个语法错误。所以回显XML开始标签。我会工作的。