CDbCriteriaでCActiveDataProviderを使用して、関連する複数のモデルを使用していくつかの関連するモデルを検索しています。結果を生成するコードは以下の通りです:Yiiフレームワーク:不正確な結果の数を報告するClistview
$criteria->select = '*, (3959 * acos(cos(radians(' . $latitude . '))
* cos(radians(latitude)) * cos(radians(longitude) -
radians(' . $longitude . ')) + sin(radians(' . $latitude . '))
* sin(radians(latitude)))) * 1.609344 AS distance';
//Basically just calculating distance from an input point
$criteria->with = array('keywords', 'coupons', 'jobs');
$criteria->order = 'distance asc';
$criteria->having = 'distance < 20';
$criteria->compare('name', $this->searchTerm, true, 'AND');
$のdataProvider =新しいCActiveDataProvider( '店'、配列( '基準' => $基準));
検索が正常に動作し、期待どおりの結果が得られます。問題は、CListviewが結果の数を正しく報告するが、とにかくページ分割を示すことである。たとえば、「31の結果のうちの1〜7を表示し、ページ番号が表示されます。 2、3、4ページをクリックすると結果が表示されません。
これはバグですか、何か間違っていますか?
これは有望に思えます。これは、CDataProviderにフィードするためのクエリからレコードの総数を取得するのに適していますか? –
ここで、ハックな解決策を得ました:http://pastebin.com/ZUAHBm3P。あなたは一見を持ち、より良い方法を提案できますか? –