나는 이것에 대해 많이 조사했지만 지금까지 답을 얻지 못했다.
내가 적절한 데이터를 얻을 수 CDbCriteria 개체를 만드는거야 :Yii dataProvider 배열에 의해 주어진 데이터 순서
Array ([0] => 10 [1] => 16 [2] => 14 [3] => 15)
사람들이 id_posts
내가 제시 할 수 있습니다 $arrayContents
배열은 다음과 같은 요소로 구성이다
$criteria = new CDbCriteria;
$criteria->compare('id_post', $arrayContents);
을 여기에 문제가있어 dataProvider를 사용하지만 해당 특정 순서로만 사용하십시오. 또한, 난이 방법 dataProvider의 생성 :
가$dataProviderPosts = new CActiveDataProvider('Posts',array(
'criteria' => $criteria,
'pagination'=>array(
'pageSize'=>20,
),
));
id_posts
표시의 순서는 10, 14, 15, 16 내가 원하는 안 하나.
나는 또한 같은 dataProvider를 만드는 시도했다 :
$dataProviderPosts = new CActiveDataProvider('Posts',array(
'criteria'=>$criteria,
'sort'=>array(
'defaultOrder'=>array('id_post'=>$arrayContents),
),
'pagination'=>array(
'pageSize'=>20,
),
));
을하지만 그것은 단지 순서에 표시 않았다 : 16, 15, 14, 10, 내가 원하는 것을, 그래서 그냥 뒤로 그렇게하지, 내가 원하기 때문에 순서대로 표시하려면 $arrayContents
의 숫자와 같이 10, 16, 14, 15를 표시하십시오.
글쎄, 그것은 실제로 Yii 문제는 아니지만 db, 여기에서 절에 대한 질문입니다 http://stackoverflow.com/questions/396748/ordering-by-the-order-of-values-in- a-sql-in-clause 그러나 나는 그것을 Yii dataprovider에 적용하는 방법을 모른다. –
답변 해 주셔서 감사합니다. 그것은 저에게 새로운 아이디어를주었습니다. 그러나 그들 중 누구도 지금까지 일하지 않았습니다. – user2399760
'priority' 테이블에 다른 필드를 추가하십시오. 원하는대로 데이터를 표시하려면 우선 순위를 설정하십시오. 단순한! 당신의 답을위한 해결책은 아니지만, 임의의 아이디어 일 수 있습니다. 이것은 귀하의 문제를 해결할 수 있습니다. –