defaultOrder में एक सरणी होती है जहां कुंजी एक कॉलम नाम है और मान एक SORT_DESC
या SORT_ASC
यही कारण है कि नीचे कोड काम नहीं कर रहा है।
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' => ['defaultOrder'=>'topic_order asc']
]);
सही तरीका
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' => [
'defaultOrder' => [
'topic_order' => SORT_ASC,
]
],
]);
नोट: यदि कोई क्वेरी पहले से ही आदेश खंड को निर्दिष्ट करती है, तो अंतिम उपयोगकर्ताओं द्वारा दिए गए नए आदेश निर्देश (सॉर्ट कॉन्फ़िगरेशन के माध्यम से) मौजूदा ऑर्डरबी क्लॉज में जोड़े जाएंगे। किसी भी मौजूदा सीमा और ऑफसेट खंड को अंतिम उपयोगकर्ताओं (पेजिनेशन कॉन्फ़िगरेशन के माध्यम से) से पृष्ठांकन अनुरोध द्वारा अधिलेखित किया जाएगा।
आप डेटा प्रदाता के Yii2 गाइड से सीख सकते हैं
क्रमबद्ध करके क्वेरी में ऑब्जेक्ट को सॉर्ट करके
$sort = new Sort([
'attributes' => [
'age',
'name' => [
'asc' => ['first_name' => SORT_ASC, 'last_name' => SORT_ASC],
'desc' => ['first_name' => SORT_DESC, 'last_name' => SORT_DESC],
'default' => SORT_DESC,
'label' => 'Name',
],
],
]);
$models = Article::find()
->where(['status' => 1])
->orderBy($sort->orders)
->all();