Pregunta ¿Cómo usar paginator :: make () en laravel para mostrar el conjunto de resultados a la vista?


He usado Paginator::make para paginar los registros en la tabla. En la vista, obtengo los enlaces de paginación, pero todos los enlaces tienen todos los registros. Cómo restringirlo a perPage ¿artículos?

    $datas = Paginator::make($paginator, count($paginator), $perPage);
    return $datas;

El código muestra:

{"total":10,"per_page":5,"current_page":1,"last_page":2,"from":1,"to":5,"data":      
[{"id":"10","languages":"ds","created_at":"2014-05-23 
11:59:02.000","created_by":"1","updated_at":"2014-05-23 
11:59:02.000","updated_by":"1","is_active":"1"},
{"id":"9","languages":"urdu","created_at":"2014-05-23 
11:57:24.000","created_by":"1","updated_at":"2014-05-23 
11:57:24.000","updated_by":"1","is_active":"1"},
{"id":"8","languages":"were","created_at":"2014-05-23 
11:55:49.000","created_by":"1","updated_at":"2014-05-23 
11:55:49.000","updated_by":"1","is_active":"1"},  
{"id":"7","languages":"delete","created_at":"2014-05-23  
11:54:57.000","created_by":"1","updated_at":"2014-05-24  
06:02:46.000","updated_by":"1","is_active":"1"},
{"id":"6","languages":"sdf","created_at":"2014-05-23 
11:53:11.000","created_by":"1","updated_at":"2014-05-23 
11:53:11.000","updated_by":"1","is_active":"1"},
{"id":"5","languages":"dada","created_at":"2014-05-23 
11:51:33.000","created_by":"1","updated_at":"2014-05-24 
05:44:34.000","updated_by":"1","is_active":"1"},
{"id":"4","languages":"English","created_at":"2014-05-23 
11:49:49.000","created_by":"1","updated_at":"2014-05-23 
11:49:49.000","updated_by":"1","is_active":"1"},
{"id":"3","languages":"asdfgf","created_at":"2014-05-23 
11:48:20.000","created_by":"1","updated_at":"2014-05-23 
11:48:20.000","updated_by":"1","is_active":"1"},
{"id":"2","languages":"Tamil","created_at":"2014-05-23 
10:55:50.000","created_by":"1","updated_at":"2014-05-23 
10:55:50.000","updated_by":"1","is_active":"1"},
{"id":"1","languages":"Tamil","created_at":"2014-05-23 
10:51:42.000","created_by":"1","updated_at":"2014-05-26 
04:41:27.000","updated_by":"1","is_active":"1"}]}

5
2018-05-26 12:45


origen


Respuestas:


En realidad, la función Paginator :: make necesita pasar solo los valores requeridos en lugar de todos los valores. Porque la función paginator :: make simplemente muestra los datos que se le envían. Para enviar los datos paginados de compensación correctos a paginator :: make, se debe seguir el siguiente método

    $paginator = json_decode($response);
    $perPage = 5;   
    $page = Input::get('page', 1);
    if ($page > count($paginator) or $page < 1) { $page = 1; }
    $offset = ($page * $perPage) - $perPage;
    $articles = array_slice($paginator,$offset,$perPage);
    $datas = Paginator::make($articles, count($paginator), $perPage);

Espero que esto ayude a alguien...


4
2018-05-27 05:16



Paginator::make() 

Esta función solo crea el sistema de paginación. Para restringir sus datos para cada página, debe hacer algunos cambios a su consulta. Aquí hay un ejemplo.

        $pageNo = Input::get('page', 1);
        $perPage = 10;
        $from = $pageNo*$perPage-$perPage;
        $to = $perPage;

        $data['allData'] = DB::select( DB::raw('SELECT * FROM tablename LIMIT '.$from.','.$to));
        $totalData = DB::select( DB::raw('SELECT * FROM tablename'));
        $data['paginator'] = Paginator::make($data['allData'], count($totalData), $perPage);

Luego puede mostrar los datos en su página de visualización


3
2018-05-27 06:46



Deberías cargar un view y pasa el $datas a ese view usando algo como esto:

return View::make('viewname')->with('datas', $datas);

Entonces en tu view bucle todos los modelos en $datas e imprimir el links, por ejemplo:

foreach($datas as $data) {
    echo $data['propertyname']; // $data['username'];
}

Finalmente imprimir los enlaces:

echo $data->links();

Si estás usando Blade luego usa {{ $data['propertyname'] }} y {{ $data->links() }} en lugar de echo y tambien cambio foreach, revisa aquí para más. También asegúrate de haber usado el derecho viewname en make(...) porque el viewname pasado en el make(...) método wull se carga desde app/views carpeta por defecto.


0
2018-05-26 18:54