Rendert die Ansicht in einen String und gibt json in CakePHP aus

7

Ich habe einige Probleme mit CakePHP 2.4 während der Arbeit mit AJAX und JSON.

Ich möchte Daten mit einer Ansicht rendern, aber den resultierenden HTML-Code als String in einer Variablen speichern. Danach möchte ich ein Array festlegen, das diese HTML-Zeichenfolge unter anderen Daten enthält, die als JSON-Objekt zurückgegeben werden. Leider habe ich noch nicht den richtigen Weg gefunden.

Mein Controller-Code verwendet bisher die CakePHP-json-Magie:

%Vor%

Dies gibt den perfekten JSON in der JavaScript-Konsole aus, abgesehen davon, dass die Daten in $ Daten einfache Daten sind.

Ist es irgendwie möglich, $ Daten an eine View zu übergeben, sie zu rendern, die Ausgabe in einer Stringvariablen $ html zu speichern und $ html an Jobs in jsonResponse statt $ data zu übergeben?

    
zinky 05.05.2014, 08:06
quelle

3 Antworten

21

Ja! Sie können eine Ansicht in eine Variable rendern. Sie müssen nur ein Ansichtsobjekt erstellen. In Ihrem Controller Versuchen Sie Folgendes:

%Vor%     
Spandan Singh 05.05.2014 10:47
quelle
6

Für diejenigen, die CakePhp3

verwenden %Vor%

Vergessen Sie nicht, dies in Ihrem Namensraum hinzuzufügen

%Vor%     
Franz 23.07.2015 11:02
quelle
1

Die Controller::render() -Funktion legt den Hauptteil der Antwort fest, indem sie CakeResponse::body() aufruft und dann das aktuelle CakeResponse -Objekt zurückgibt. Dies bedeutet, dass Sie die Methode render() innerhalb der Controller-Aktion aufrufen, ihren Rückgabewert erfassen und dann den CakeResponse::body() erneut aufrufen können und somit den Antworttextkörper mit der gewünschten Ausgabe ersetzen können.

Beispielcode:

%Vor%     
Yanosh Kunsh 07.01.2015 09:06
quelle

Tags und Links