Дефолтная сортировка для списка записей в админке Yii2
Имеется стандартный CRUD сгенерированный Gii
Имеется стандартный IndexAction
public function actionIndex()
{
$searchModel = new FilesSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
Необходимо реализовать дефолтную сортировку по ID в убывающем порядке.
Решил сделать так.
public function actionIndex()
{
if (!array_key_exists('sort', Yii::$app->request->queryParams)){
Yii::$app->request->setQueryParams(['sort' => '-id']);
}
$searchModel = new FilesSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
Нормальный ли это подход, или для этих целей есть специальные настройки?
Ответы (1 шт):
Автор решения: zakiroof
→ Ссылка
Ваша функция search, как я предполагаю возвращает ActiveDataProvider. Если да, то вы можете указать дефолтную сортировку так:
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' => [
'defaultOrder' => [
'id' => SORT_DESC,
]
],
]);