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 ],
]);