2

いくつかの ID を含む配列を使用して、where 句で DataList::get() を実行しています。

$result = DataList::get('MyObject')->where('ID IN(' .implode(',',$idArr). ')');

私の配列は次のようになります

array
  0 => string '1'
  1 => string '12'
  2 => string '2'
  3 => string '11'

DataList:get() の結果を $idArr と同じ順序でソート/順序付けしたい。私は試した

$masteries = Mastery::get()->where('ID IN(' .implode(',',$idArr). ')')->sort('ID', implode(',',$idArr));

しかし、それはうまくいきませんでした。DataList を使用してこれを行う方法はありますか、それともカスタム クエリを実行する必要がありますか?

4

2 に答える 2

7

完全を期すために、OPがこれを行う方法について尋ねたことに注意する必要があるDataListため、このクエリを作成するORMの方法(標準のソート動作で完了)は次のようになります。

$masteries = Mastery::get()
    ->filter(array('ID' => $idArr))
    ->sort('ID', 'ASC'); // See the docblock for DataList::sort()
于 2016-04-07T03:13:42.903 に答える