Crear paginación

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

             



yen mi vista tengo esto




foreach ($model as $datos) {

     echo $datos['emp_nombre'];

}

<?php echo \yii\widgets\LinkPager::widget(['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.

que debo hacer ??

Tienes que hacer 2 querys:




$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.

Que tal amigo realice estos cambios

pero me sigue mostrando solo la primera pagina

No me di cuenta la vez anterior, lo siento.

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.

Necesitas hacer la busqueda por GET.

Saludos

Muchas gracias efectivamente pase los datos por GET y me funciona.