Que tal amigos, un favor tengo una consulta la cual quiero mostrar en una vista con paginación pero al momento que le doy click en la segunda pagina no me muestra nada
MI Controlador
public function actionBuscar()
{
$request = Yii::$app->request;
$busqueda = $request->post('buscar');//recojer datos de formulario
$sql="SELECT * FROM tbl_empresa WHERE MATCH (emp_descripcion) AGAINST ('$busqueda')";
$contador = Yii::$app->db->createCommand($sql)->queryScalar();
$provider = new SqlDataProvider([
'sql'=>$sql,
'totalCount' => $contador,
'pagination' => [
'pageSize' => 5,
],
'sort' => [
'attributes' => [
'emp_nombre',
],
],
]);
$models = $provider->getModels();
$pagination = new Pagination([
'defaultPageSize' => 5,
'totalCount' => $contador,
]);
return $this->render('buscar',['model'=>$models ,,'pagination'=>$pagination]);
si la consulta me genera 10 registros entonces en la primera pagina me salen los 5 resultados, pero al momento de pasar a la siguiente pagina no me muestra nada.
$sql1 = "SELECT count(*) FROM tbl_empresa WHERE MATCH (emp_descripcion) AGAINST ('$busqueda')";
$sql2 = "SELECT * FROM tbl_empresa WHERE MATCH (emp_descripcion) AGAINST ('$busqueda')";
la primera es la del contador y la 2º es la del dataprovider.
La query que estas haciendo toma los parámetros enviados por post, los cuales son recibidos en la 1º visualización.
Pero el linkpager envia el numero de pagina por GET y no se envia nada por POST asi que en la 2º pagina, o cualquier otra la query que se esta resolviendo es MATCH (emp_descripcion) AGAINST (’$busqueda’) siendo $busqueda vacio.