2016-04-05 9 views
0

残りのAPIを介してモバイルデバイスにデータを提供するアプリケーションを作成しました。 私は、キー(Foreign/Index)を介してそれらの間に確立された関係に基づいて、さまざまなテーブルからデータを取得しています。ActiveDataProviderがREST APIの他のパラメータとマージした場合、実際のデータを返さない - Yii2

テーブルから必要なデータを抽出するのに、ActiveDataProviderを使用しています。

$dataProvider = new ActiveDataProvider([ 
    'query'=>$query 
]); 

これは私が設定されたクエリに基づいて、偉大な作業と次のように私はそれを返すとき、私は、必要に応じてJSON形式でデータを返している:私が欲しいもの

return $dataProvider; 

は次のとおりです。

  • このActiveDataProviderのデータを他のデータとともに返します。 1つのオブジェクト内のActiveDataProviderのすべてのデータと同様に、他のデータは別のオブジェクトのフラグ値を示します。たとえば、

:私のようにそれを返すとき

[ 
    "some_other_data":{ 
    ----- 
    }, 
    "dataProvider": { 
    "device_id": "552255445511", 
    "dated": "2016-03-15 23:00:04", 
    "speed": "73.30", 
    "power": null, 
    "ignition": null, 
    "ac": null, 
    "address": "52", 
    "latitude": "30.4575", 
    "longitude": "76.1", 
    "devices": { 
     "vehicle_number": "UK 6S Z 5555", 
     "vehicle_type": "0" 
    } 
    } 
] 

問題がされています

return array('some_other_data'=>$somedata, 'dataProvider'=>$dataProvider); 

、結果は同様である:

{ 
    "some_other_data": 0, 
    "dataProvider": { 
    "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": { 
     "tk103_current_location.device_id": { 
      "sql": null, 
      "on": null, 
      "joinWith": null, 
      "select": [ 
      "device_id" 
      ], 
      "selectOption": null, 
      "distinct": null, 
      "from": null, 
      "groupBy": null, 
      "join": null, 
      "having": null, 
      "union": null, 
      "params": [], 
      "where": { 
      "transporter_id": 22 
      }, 
      "limit": null, 
      "offset": null, 
      "orderBy": null, 
      "indexBy": null, 
      "modelClass": "api\\modules\\v1\\models\\Tk103Devices", 
      "with": null, 
      "asArray": null, 
      "multiple": null, 
      "primaryModel": null, 
      "link": null, 
      "via": null, 
      "inverseOf": null 
     } 
     }, 
     "limit": null, 
     "offset": null, 
     "orderBy": null, 
     "indexBy": null, 
     "modelClass": "api\\modules\\v1\\models\\Tk103CurrentLocation", 
     "with": null, 
     "asArray": null, 
     "multiple": null, 
     "primaryModel": null, 
     "link": null, 
     "via": null, 
     "inverseOf": null 
    }, 
    "key": null, 
    "db": null, 
    "id": null 
    } 
} 

すなわちActiveDataProviderが戻っています実際の結果ではなく、結果のデータのようなスキーマ

このdataProviderにデータを返そうとしているアーキテクチャではなく、実際のデータを返すように指示する手がかりやヒントを教えてください。

答えて

1

return array('some_other_data'=>$somedata, 'dataProvider'=>$dataProvider->getModels()); 
+0

素晴らしいお試しください..しかし、私は私が私の心を失ったと思います。私はドキュメンテーションを何度も見てきましたが、getModels()を見ていませんでした。ありがとう、相棒。そんな小さなことだったし、私はそれを得ていなかった。 +1 – Choxx

+0

yii \ rest \シリアライザ行#172、yii2は、残りのコントローラで同じことをしました。 :) –

関連する問題