2016-07-15 24 views
1

Ich bin ganz neu in Yü 2, aber hier geht zu akzeptieren:Yü 2 einrichten Controller json fordert

Was ich versuche zu erreichen einzurichten einen Controller, der liest einfach in irgendwelchen json Daten gebucht es.

Ich bin etwas verwirrt, wie das in Yii funktioniert.

Was ich bisher versucht wird ftest einen Controller namens einrichten, um zu sehen, ob ich es bekommen könnte etwas json Rückkehr, die zu funktionieren scheint:

public function actionFTest(){ 
    $request = Yii::$app->request; 
    Yii::$app->response->format = \yii\web\Response::FORMAT_RAW; 
    $headers = Yii::$app->response->headers; 
    $headers->add('Content-Type', 'text/json'); 

    $response = Yii::$app->response; 
    $response->format = \yii\web\Response::FORMAT_JSON; 
    $response->data = ['message' => 'Evan .. WHERE ARE YOU?']; 

    //$notificationData = json_decode(file_get_contents("php://input"), true); 

    //echo var_dump($notificationData); 

} 

Es ist ein bisschen chaotisch, seit ich werfen worden im Code hin und her. Ich weiß, dass ich normalerweise etwas wie $ this-> render (usw.) zurückgeben sollte, aber ich bin mir nicht sicher, was ich als Sicht zurückkehren muss.

Vielen Dank für jede Hilfe, die Sie anbieten können

+0

Menge Dinge sind nicht klar aus Ihrem Post hilfreich sein, wie, 1) Woher kommen die json-Daten? 2) Was beabsichtigen Sie damit? 3) Was passiert, nachdem Sie die Daten verarbeitet haben? ?? –

+0

Werfen Sie einen Blick auf den Abschnitt "enabling-json-input" hier: http://www.yiiframework.com/doc-2.0/guide-rest-quick-start.html#enabling-json-input - auch wenn Sie Wenn Sie keine API selbst erstellen, sollten Sie in der Lage sein, die Beispiele zu verwenden, um das zu tun, was Sie beschreiben. – ldg

+0

Entschuldigung, nur zu erwähnen: Die Daten würden von einem anderen Skript auf einem anderen Server (eine Whitelist IP) auf diese Seite/URL veröffentlicht werden. Die zugrunde liegenden Probleme dahinter waren, dass Daten nicht an diese Aktion gesendet werden konnten, die ich durch die aktivierte CSRF-Validierung behoben habe: $ this-> enableCsrfValidation = false; – user3798442

Antwort

2

Dies könnte

use Yii; 
    use yii\web\Response; 



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

Then after that just return a simple array like that: 

    return ['param' => $value]; 

Lesen Sie dieses http://www.yiiframework.com/doc-2.0/yii-web-response.html# $ format-Detail

+0

Arbeitet ein Vergnügen, danke eine Million. – user3798442

+0

froh, von Ihnen zu hören, dass es funktioniert .. genießen :) @ user3798442 –