2016-07-21 4 views
0

ich habe die ganze Zeit mit CakePHP 2.5 programmiert. Jetzt bin ich zu 3.2 gewechselt und habe ein Problem, das ich nicht gelöst bekomme.CakePHP 3.2 - XMLview aus lokaler XML-Datei erzeugen

Das Ziel ist eine dynamische XML-Datei, die für einen Videorekorder benötigt wird

In Version 2.5, ich könnte dies mit folgenden Zeilen in der Steuerung tun

public function genxml($id = null) {  
      if (!$this->Video->exists($id)) { 
      throw new NotFoundException(__('Invalid video')); 
    } 

    $this->RequestHandler->respondAs('xml'); 
    $this->RequestHandler->renderAs($this, 'xml'); 
    $options = array('conditions' => array('Video.' . $this->Video->primaryKey => $id)); 
    $this->set('video', $this->Video->find('first', $options)); 
    } 

Leider ist diese nicht in Version funktioniert. 3 Hier habe ich folgende Zeilen verwendet, aber ich habe nicht zu dem Ergebnis geführt, das ich erreicht habe.

Was soll ich mit bestimmten Werten in einer XML-Dateiabfrage tun, die dann als XML-Datei generiert wird?

Vielen Dank für Ihre Hilfe vor dem Start.

Jerome

Antwort

0

Haben fügen Sie Dateierweiterungen zu Ihrem routes.php Routing?

Router::scope('/', function (RouteBuilder $routes) { 
$routes->extensions(['json', 'xml']); 
// Other code 
} 

Dies ermöglicht Ihnen, dynamisch wie ein /cakeapp/articles.xml JSON und XML-Datei zu erzeugen (Wenn Sie /cakeapp/articles/index.xml wollen das gleiche ist)

0
Router::extensions('xml'); 

Entfernen Sie diese Zeile aus Ihrer routes.php Datei.

$routes->extensions(['json', 'xml']); 

diese Zeile nach Router::scope('/', function (RouteBuilder $routes) { in Ihrer routes.php Datei hinzufügen.

Jetzt einfach /AppFolder/YourController/genxml.xml setzen. Dies sollte Daten von Ihrer Methode zurückgeben. (Diese Zeile macht es)

+0

Bitte [bearbeiten Sie Ihre Antwort] (http://stackoverflow.com/posts/38507876/edit), wenn Sie zusätzliche Informationen hinzufügen möchten. Veröffentlichen Sie keine Mehrfachantworten. – ndm

+0

Ich habe getan, was du gesagt hast. funktioniert gut so weit. vorher hatte genau das gleiche Ergebnis mit meiner Linie "Router :: Erweiterungen ('xml');" jetzt bekomme ich eine XML-Ausgabe, die ich nicht verwenden kann, weil es nicht die bestimmten Regeln für den Videoplayer hat. Daher meine Frage, wie kann ich eine Pre-XML-Datei verwenden. In Cake2 war das kein Problem. aber derzeit scheide ich cake3. –

Verwandte Themen