Warum ist Yii2 rest-controller geben Antwort im XML-format?

Momentan benutze ich den folgenden code für die Initialisierung auf mein api-Modul

public function init()
{
    parent::init();
    Yii::$app->response->format = Response::FORMAT_JSON;
}

Mein api zurück gibt Antwort im XML-format im folgenden Beispiel.

public function actionTest()
{
    $items = ['one', 'two', 'three' => ['a', 'b', 'c']];
    return $items;
}

Dies ist die Antwort:

<response>
  <item>one</item>
  <item>two</item>
   <three>
    <item>a</item>
    <item>b</item>
    <item>c</item>
   </three>
</response>

Nur so kann ich es auf der Arbeit ist, durch hinzufügen folgender Zeile zu jedem der controller-Verhalten. Ich habe die Dokumentation gelesen, die sagt, ich kann initalize diese auf der Modul-Klasse, so dass ich nicht brauchen, um es in jedem controller. Ich weiß nicht, warum gibt es XML-obwohl. Auch nur für den Fall, die einzige Möglichkeit ist das hinzufügen es zu meinem Verhalten, tun, ich habe das schreiben von code zum behandeln von name, code, status, Typ, vorherigen und code oder tut Yii bieten yii\rest\Controller und yii\rest\ActiveController, die automatisch verarbeitet diese. Klar, Sie sind die Ausgabe automatisch, wenn ein Fehler aufgetreten ist.

{"name":"Not Found"
 "message":"Page not found.",
 "code":0,
 "status":404
 "type":"yii\\web\\NotFoundHttpException"
 "previous":{"name":"Invalid Route","message":"Unable to resolve the request: api/home/",
 "code":0,"type":"yii\\base\\InvalidRouteException"
 }
}
  • Kann es sein, dass etwas anderes, wie ein Verhalten oder eine Klasse Aktion ändert sich Ihre app-Antwort-format? Sie können versuchen, var-dumping - Yii::$app->response->format in jede Ihrer Aktionen genau, bevor Sie einen Wert zurückgeben.
  • Ich bekomme das XML-Parsing-Fehler: nicht wohlgeformt Zeile Nummer 1, Spalte 7:string(3) "xml" ------^
InformationsquelleAutor Lenny Carmi | 2015-08-24
Schreibe einen Kommentar