Heim >Backend-Entwicklung >PHP-Tutorial >Wie gebe ich benutzerdefinierte HTTP-Antworttextinhalte mit CakePHP 3.4 und PSR-7 aus?
Benutzerdefinierte HTTP-Antworttextausgabe mit CakePHP 3.4 und PSR-7
CakePHP 3.4 führt die Verwendung von PSR-7-kompatiblen Antwortobjekten ein. Das direkte Echo von Daten über Echo kann jetzt aufgrund strenger Header-Prüfungen Fehler auslösen.
Controller sollten keine Daten echoen. Verwenden Sie stattdessen die folgenden Methoden, um benutzerdefinierten HTTP-Body auszugeben Inhalt:
Verwendung der PSR-7-Antwortschnittstelle:
<code class="php">$content = json_encode(['method' => __METHOD__, 'class' => get_called_class()]); $this->response = $this->response->withStringBody($content); $this->response = $this->response->withType('json'); return $this->response;</code>
Verwendung der veralteten Antwortschnittstelle (vor CakePHP 3.4.3):
<code class="php">$content = json_encode(['method' => __METHOD__, 'class' => get_called_class()]); $this->response->body($content); $this->response->type('json'); return $this->response;</code>
Verwendung serialisierter Ansichten:
<code class="php">$content = ['method' => __METHOD__, 'class' => get_called_class()]; $this->set('content', $content); $this->set('_serialize', 'content');</code>
Dieser Ansatz erfordert die Request-Handler-Komponente und die richtige URL oder Anforderungsheader, um das Rendern der JSON-Ansicht auszulösen.
Referenzen:
Das obige ist der detaillierte Inhalt vonWie gebe ich benutzerdefinierte HTTP-Antworttextinhalte mit CakePHP 3.4 und PSR-7 aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!