Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera, blz? Então, resolvi uma bronca da paginação com Slim Framework. Porém os resultados que aparecem na página principal estão começando a partir do 3º item.
Exemplo: na pagina inicial (site.com.br/teste) ao invés da exibição começar do post 1, está começando do post 3. (No teste estou exibindo na tela 2 posts por página)
<?php
use JasonGrimes\Paginator;
// Rota para testes
$app->get('/teste/:slug/(:page/)', function($slug, $page = 1) use($app, $ajustes, $capsule){
//Seleciona o artista a partir do Slug
$artista = Artistas::where('slug', '=', $slug)->firstOrFail();
// Retorna o numero de posts do artista
$p = Shows::showsArtista($artista->id)->count();
// Retorna o numero de páginas para fazer a paginação
$pages = $p / $ajustes->artista_por_pag;
// Se deu tudo certo até agora, a aplicação continua
if($page > $pages) $app->pass();
$slugArt = $artista->slug;
//array com todos os shows do artista
//$shows_do_artista = Shows::showsArtista($artista->id)->all();
$shows_do_artista = $capsule->table('shows')->where('show_artista', '=', $artista->id)->orderBy('criado_em','desc')->skip($ajustes->artista_por_pag * $page)->take($ajustes->artista_por_pag)->get();
//paginacao Jason Grimes
$total = $p;
$urlPat = $app->request()->getUrl() . DS . 'teste' . DS . $slugArt . DS . "(:num)/";
if(!$page){
$page = 1;
}
$paginator = new Paginator($total, $ajustes->artista_por_pag, $page, $urlPat);
$get = $paginator->getPages();
$infos = array(
'artista' => $artista,
'site_titulo' => $artista->nome,
'site_descricao' => $ajustes->titulo . " | " . $ajustes->descricao,
'site_url' => $ajustes->site_url,
'shows' => $shows_do_artista,
'paginator' => $paginator
);
$app->render('teste.html', $infos);
})->conditions(array('page' => '\d+'));
Carregando comentários...