2015-07-27 15 views
5

Sono nuovo per Yii 2 framework e PHP. Quando provo a recuperare i dati di un modello dal server come Json, sto ricevendo dati vuoti. Ma quando uso var_dump, sto ottenendo il risultato. Il codice sul controller è indicato di seguito.Non riesco a ottenere dati oggetto Yii2 restituiti come Json

// function inside class ClientController 
public function actionIndex() {   
    $client=new Client(); 
    $client->name="ajith"; 
    echo json_encode($client); 
} 

Il codice di classe del modello è riportata qui sotto

class Client extends \yii\mongodb\ActiveRecord { 
    public static function collectionName() { 
     return ['gym', 'client']; 
    } 

    public function attributes() 
    { 
     return [ 
      '_id', 'name', 'age', 'sex', 'phoneno', 'email', 'address', 'location' 
     ]; 
    } 

    public function rules() { 
     return [ 
      [['name', 'age', 'sex', 'phoneno', 'email', 'address', 'location'], 'safe'] 
     ]; 
    } 

    public function attributeLabels() { 
     return [ 
      '_id' => 'ID', 
      'name' => 'Name', 
      'age' => 'Age', 
      'sex' => 'Sex', 
      'phoneno' => 'Phoneno', 
      'email' => 'Email', 
      'address' => 'Address', 
      'location' => 'Location', 
     ]; 
    } 
} 

Quando uso il sentiero URL pathToServer/web/client, sto risultato ottenendo eco come {}. Perché è così. Io uso MongoDB come database.

+1

provare a utilizzare un ritorno nella vostra azione di controllo, invece, è quello che oggetto risposta Yii2 si aspetta come un ritorno da un'azione del controller – Sammaye

risposta

9

Import classe Response:

use yii\web\Response; 

Dillo Yii quale formato vuoi come risultato impostando Yii::$app->response->format prima del risultato return

public function actionIndex() {  
    Yii::$app->response->format = Response::FORMAT_JSON;   
    $data = ["success" => true, "message" => "Hello World"]; 
    return $data; 
} 

Risposta:

{ 
    "success": true, 
    "message": "Hello World" 
} 

Si può leggere su formati di risposta nel yii2-cookbook

2

L'utilizzo potrebbe utilizzare l'helper JSON e restituirlo.

Prima di tutto importazione Yii2 JSON aiutante

use yii\helpers\Json; 

Il codice sarà simile a questa:

public function actionIndex() 
{ 
    $client = new Client(); 

    $client->name = "ajith"; 

    return Json::encode($client); 
} 
Problemi correlati