Sarvar N
In Yii 1.1 funktioniert dieser Code für die Standardsortierung:
$dataProvider = new CActiveDataProvider('article',array(
'sort'=>array(
'defaultOrder'=>'id DESC',
),
));
Wie kann die Standardsortierung in Yii2 eingestellt werden?
Versucht unten Code, aber kein Ergebnis:
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' => ['defaultOrder'=>'topic_order asc']
]);
Alex
Ich denke, es gibt eine richtige Lösung. Konfigurieren Sie die yii\data\Sort
Objekt:
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort'=> ['defaultOrder' => ['topic_order' => SORT_ASC]],
]);
Offizieller Dokumentlink
Oder
$dataProvider->setSort([
'defaultOrder' => ['topic_order'=>SORT_DESC]'Attribute' => [...
Parth Chavda
defaultOrder contain a array where key is a column name and value is a SORT_DESC
or SORT_ASC
that’s why below code not working.
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' => ['defaultOrder'=>'topic_order asc']
]);
Der richtige Weg
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' => [
'defaultOrder' => [
'topic_order' => SORT_ASC,
]
],
]);
Hinweis: Wenn eine Abfrage bereits die orderBy-Klausel angibt, werden die neuen Bestellanweisungen der Endbenutzer (über die Sortierkonfiguration) an die vorhandene orderBy-Klausel angehängt. Alle vorhandenen Limit- und Offset-Klauseln werden durch die Paginierungsanforderung von Endbenutzern (über die Paginierungskonfiguration) überschrieben.
Sie können detailliert aus lernen
Yii2 Leitfaden des Datenanbieters
Sortieren Durch Übergeben des Sort-Objekts in der Abfrage
$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();
wenn Sie CRUD (Index) haben und Sie die Standardsortierung Ihres Controllers für GridView oder ListView oder mehr festlegen müssen … Beispiel
public function actionIndex()
{
$searchModel = new NewsSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
// set default sorting
$dataProvider->sort->defaultOrder = ['id' => SORT_DESC];
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
Sie müssen hinzufügen
$dataProvider->sort->defaultOrder = ['id' => SORT_DESC];
Versuchen Sie es mit diesem
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
$sort = $dataProvider->getSort();
$sort->defaultOrder = ['id' => SORT_ASC];
$dataProvider->setSort($sort);
johannchopin
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort'=> ['defaultOrder' => ['iUserId'=>SORT_ASC]]
]);
Pather
Wie in der angegeben führen müssen Sie das Sortierverhalten eines Datenanbieters angeben, indem Sie seine Sortiereigenschaften konfigurieren, die den Konfigurationen für yii\data\Sort entsprechen
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort'=> ['defaultOrder' => ['topic_order' => SORT_ASC]],
]);
135586 0 0 cookie-check Yii2-Datenanbieter-Standardsortierung yes