2017-09-13 24 views
4

jQueryを使用してAJAXクエリを実行したいのですが、応答は私が望むものではありません。Yii2とAjax:応答はSQLクエリの結果ではありません

クライアント側:

$.ajax({ 
    url: "/family?idperson=1234", 
    dataType: 'json', 
    success: function(res) { 
     console.log(JSON.stringify(res, null, 4)); 
    }, 
    error: function(err) {     
    } 
}); 

サーバー側:

public function actionFamily($idperson) 
{ 
    $searchModelFamily = new FamilySearch(); 
    $dataProvider = $searchModelFamily->searchByIdperson(Yii::$app->request->queryParams, $idperson); // This database query works great. 

    Yii::$app->response->format = Response::FORMAT_JSON; 
    return $dataProvider; 
} 

これはJSONオブジェクトの内容です:それは、SQLクエリの一部に思えます。しかし、私はSQL 結果が必要です。

{ 
    "query": { 
     "sql": null, 
     "on": null, 
     "joinWith": null, 
     "select": null, 
     "selectOption": null, 
     "distinct": null, 
     "from": null, 
     "groupBy": null, 
     "join": null, 
     "having": null, 
     "union": null, 
     "params": [], 
     "where": { 
      "idperson": "1234" 
     }, 
     "limit": null, 
     "offset": null, 
     "orderBy": null, 
     "indexBy": null, 
     "emulateExecution": false, 
     "modelClass": "app\\models\\Family", 
     "with": null, 
     "asArray": null, 
     "multiple": null, 
     "primaryModel": null, 
     "link": null, 
     "via": null, 
     "inverseOf": null 
    }, 
    "key": null, 
    "db": null, 
    "id": null 
} 
+0

現在の結果はどのようなもので、結果は何ですか? –

答えて

4

あなたのメソッドactionFamilyは、取得するデータではなくDataProviderオブジェクトを返します。 actionFamilyがyii \ rest \コントローラ内のメソッドであれば動作するはずですが、私の推測では通常のyii \ web \コントローラを使用しているので、そのままオブジェクトを返します。

return $dataProvider; 
この中

...

return $dataProvider->getModels(); 

か(それはRESTの機能である場合)、コントローラクラスを変更...これを変更してみてください、データプロバイダのデータを取得するには上記のように。

関連する問題