2016-11-15 4 views
0

im Versuch, eine xml zu erzeugen, aber im einen Fehler bekommen: FatalErrorException in 6955f07d83b93bb8aa89577b116866e228e0c155.php line 1 syntax error, unexpected 'version' (T_STRING).Parsen von XML in Laravel

ich kann nicht herausfinden, was im in meinem Code falsch zu machen.

Mein Controller-Funktion ist:

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'); 

    } 

Meine Klinge (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> 

Antwort

2

Die Art, wie wir drum herum bekommen haben, ist die XML-Header als Variable zu speichern, dann geben sie zusammen:

$xml_version = '<?xml version="1.0"?>'; 

return response()->view('xml.gallery', compact('products', 'xml_version'))->header('Content-Type', 'text/xml'); 

die Sie dann in Ihre Klinge platzieren können:

{{$xml_version}} 
2

Es sieht so aus, als ob Ihre short_open_tag aktiviert ist. Es teilt PHP mit, ob die Kurzform (<? ?>) des offenen Tags von PHP erlaubt sein soll. Wenn Sie PHP in Kombination mit XML verwenden möchten, können Sie diese Option deaktivieren, um <?xml ?> inline zu verwenden.

Aber auch andere einfache Lösung wird folgender Code in Ihrer Ansicht Datei zu schreiben:

<?php echo '<?xml version="1.0"?>'; ?>