以下は、REST APIを作成するためのテーブルからデータを取得するためのコードです。私が行うリミット(1)設定していた "クエリのLIMITの一部を設定しますを。" Yiiの公式ドキュメントhttp://www.yiiframework.com/doc-2.0/yii-db-querytrait.html#limit()-detailあたりとしてレコードを制限しないyii db Query :: limit()関数 - Yii2
$query = new yii\db\Query();
$sql = $query
->select('a.vehicle_number, b.device_id, b.dated, b.speed, b.ignition, b.latitude, b.longitude')
->from('tk103_devices a, tk103_current_location b')
->where('a.device_id = b.device_id AND a.transporter_id='.$id)
->orderBy(['a.vehicle_number'=>SORT_ASC])
->limit(1);
$dataProvider = new ActiveDataProvider([
'query'=>$sql
]);
return array('count_flag'=>$countFlag, 'dataProvider'=>$dataProvider->getModels());
。
上記のクエリを実行すると、すべてのレコードがdataproviderによって返されています。
私のコードで何が問題になっていますか?
しかし、ActiveDataProviderの 'query'属性に渡された$ sqlはActiveRecordであり、ActiveQueryのインスタンスではなく、ActiveDataProviderに必要です。 –
モデルクラスを 'yii \ db \ Query'で拡張しました。 – Choxx