example custom column gridview filter pagination yii2

custom - Paginación y filtro en Yii2 Gridview



yii2 gridview filter (1)

Usé el generador CRUD en Yii2 y generó el siguiente código para mi controlador actionIndex ...

public function actionIndex() { $searchModel = new LeadSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); return $this->render(''index'', [ ''searchModel'' => $searchModel, ''dataProvider'' => $dataProvider, ]); }

Estoy tratando de hacer dos cosas con este código predeterminado:

1) Configure el tamaño de página para que la vista de cuadrícula que lo muestra solo muestre 10 filas

2) Modifique el $searchModel modo que solo devuelva registros donde la columna de estado en la tabla coincida con ciertos valores múltiples (operador IN) ... o mejor aún, todos los registros que no coincidan con un valor dado.

Para # 1, veo muchos ejemplos para establecer la ''paginación'' mientras uso ActiveDataProvider , pero ninguno para search() . Este código no funcionó para mí ...

$dataProvider = $searchModel->search( Yii::$app->request->queryParams, [''pagination'' => [ ''pageSize'' => 10 ]] );

Para el n. ° 2, sé que podemos filtrar declarando el nuevo objeto LeadSearch como ...

$searchModel = new LeadSearch([ ''status'' => ''open'' ]);

... pero algo como esto no funciona ...

$searchModel = new LeadSearch([ ''status'' => [''open'', ''pending''] ]);


ActiveDataProvider agregar la opción de pagination en ActiveDataProvider en el modelo de búsqueda y también poner where y andWhere en la condición $query .

$query = modalName::find()->andWhere([ ''status'' => [''open'', ''pending''] ]); $dataProvider = new ActiveDataProvider([ ''query'' => $query, ''pagination'' => [ ''pageSize'' => 10 ], ]);