IDのリストを返すのでSPHINX
、基準を使用して最終結果を並べ替える方法がわかりません。
IDを含む配列があります:
$a = array(1,2,3,4,5);
このIDの配列はSPHINX
、結果として検索エンジンによって提供されました。
この配列を使用して、必要なデータをIDでPKとして抽出したいのですが、結果を次のように並べ替える必要があります。
ビデオと写真を持っているユーザーが写真だけを持っているすべてのユーザーの前に、リストの次に写真を持っているユーザー、次に写真を持っているユーザーは、リストの一番上に最新のログインを使用して、最後にログインした日時で並べ替える必要があります。写真を持っているすべてのユーザーが終わったら、残りのユーザーがそこにいて、最後にログインしたユーザーが最初になります。
コードの書き方がわからないので、注文フィールドなしでこれを試しました。
$criteria = new CDbCriteria();
$criteria->addInCondition('id', $a);
$criteria->order = "FIELD(id, " . join(',', $a) . ")";
$dataProvider = new CActiveDataProvider('user', array(
'criteria' => $criteria,
'pagination' => array(
'pageSize' => $this->pageSize,
),
));
誰かがこのようなことを試みましたか?または別の提案?