datos consultas php yii yii2 gridview-sorting

php - consultas - clasificación por defecto del proveedor de datos yii2



gii yii2 (5)

En yii este código funciona para la clasificación por defecto:

$dataProvider = new CActiveDataProvider(''article'',array( ''sort''=>array( ''defaultOrder''=>''id DESC'', ),

¿Cómo se puede establecer la clasificación predeterminada en yii2?

intenté debajo del código, pero no hay resultado:

$dataProvider = new ActiveDataProvider([ ''query'' => $query, ''sort'' => [''defaultOrder''=>''topic_order asc''] ]);


Creo que hay una solución adecuada

$dataProvider = new ActiveDataProvider([ ''query'' => $query, ''sort''=> [''defaultOrder'' => [''topic_order''=>SORT_ASC]] ]);

Enlace oficial del documento


Intenta con este

$dataProvider = new ActiveDataProvider([ ''query'' => $query, ]); $sort = $dataProvider->getSort(); $sort->defaultOrder = [''id'' => SORT_ASC]; $dataProvider->setSort($sort);


O

$dataProvider->setSort([ ''defaultOrder'' => [''topic_order''=>SORT_DESC], ''attributes'' => [...


puedes modificar un modelo de búsqueda como este

$dataProvider = new ActiveDataProvider([ ''query'' => $query, ''sort'' => [ ''defaultOrder'' => [''user_id =5 asc, document_id asc''] ] ]);


defaultOrder contiene una matriz donde la clave es un nombre de columna y el valor es SORT_DESC o SORT_ASC , por eso el código siguiente no funciona.

$dataProvider = new ActiveDataProvider([ ''query'' => $query, ''sort'' => [''defaultOrder''=>''topic_order asc''] ]);

Manera correcta

$dataProvider = new ActiveDataProvider([ ''query'' => $query, ''sort'' => [ ''defaultOrder'' => [ ''topic_order'' => SORT_ASC, ] ], ]);

Nota: Si una consulta ya especifica la cláusula orderBy, las nuevas instrucciones de pedido dadas por los usuarios finales (a través de la configuración de clasificación) se agregarán a la cláusula orderBy existente. Las solicitudes de paginación de los usuarios finales (a través de la configuración de paginación) sobrescribirán las cláusulas de límite y compensación existentes.

Puede detallar aprender de Yii2 Guía del proveedor de datos

Clasificación Al pasar Sort objeto en la consulta

$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();