2015-07-27 20 views
5

Yii 2 framework ve PHP için yeni oldum. Sunucudan Json olarak bir model veri almaya çalıştığımda boş veri alıyorum. Ama ben var_dump kullandığımda, sonucu alıyorum. Kontrolördeki kod aşağıda verilmiştir. Ben URL yolunu pathToServer/web/client kullandığınızdaYii2 nesne verileri alınamadı Json

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

modeli sınıfı kodu

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', 
     ]; 
    } 
} 

aşağıda verilmiştir, ben sonuç alıyorum {} olarak yankılandı. Neden böyle? MongoDB'yi veritabanı olarak kullanıyorum.

+1

yerine denetleyicisi eylem dönüş kullanmayı deneyin, o Yii2 tepki nesne dönüş olarak beklediği budur denetleyici eyleminden – Sammaye

cevap

9

İthalat Tepki sınıfı:

use yii\web\Response; 

return

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

Tepki sonucu önce Yii::$app->response->format ayarlayarak sonucu ne istiyorsun biçim yii söyle:

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

Sen okuyabilirsiniz yanıt biçimleri yii2-cookbook

2

Kullanım JSON yardımcı programını kullanabilir ve bunun yerine onu iade edebilir. Tüm ithalat Yii2 JSON yardımcısı

İlk

use yii\helpers\Json; 

Kodunuz şu şekilde görünecektir:

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

    $client->name = "ajith"; 

    return Json::encode($client); 
}