PHP code example of ashleydawson / simple-pagination-bundle
1. Go to this page and download the library: Download ashleydawson/simple-pagination-bundle library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ashleydawson / simple-pagination-bundle example snippets
$bundles = array(
// ...
new AshleyDawson\SimplePaginationBundle\AshleyDawsonSimplePaginationBundle(),
);
namespace Acme\DemoBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class WelcomeController extends Controller
{
public function indexAction()
{
// Get the paginator service from the container
$paginator = $this->get('ashley_dawson_simple_pagination.paginator');
// Build a mock set of items to paginate over
$items = array(
'Banana',
'Apple',
'Cherry',
'Lemon',
'Pear',
'Watermelon',
'Orange',
'Grapefruit',
'Blackcurrant',
'Dingleberry',
'Snosberry',
'Tomato',
);
// Set the item total callback, simply returning the total number of items
$paginator->setItemTotalCallback(function () use ($items) {
return count($items);
});
// Add the slice callback, simply slicing the items array using $offset and $length
$paginator->setSliceCallback(function ($offset, $length) use ($items) {
return array_slice($items, $offset, $length);
});
// Perform the pagination, passing the current page number from the request
$pagination = $paginator->paginate((int)$this->get('request')->query->get('page', 1));
// Pass the pagination object to the view for rendering
return $this->render('AcmeDemoBundle:Welcome:index.html.twig', array(
'pagination' => $pagination,
));
}
}
namespace Acme\DemoBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class WelcomeController extends Controller
{
public function indexAction()
{
// Get the paginator service from the container
$paginator = $this->get('ashley_dawson_simple_pagination.paginator');
// Create a Doctrine query builder
$manager = $this->getDoctrine()->getManager();
$query = $manager->createQueryBuilder();
// Build the initial query, including any special filters
$query
->from('AcmeDemoBundle:Film', 'f')
->where('f.releaseAt > :threshold')
->setParameter('threshold', new \DateTime('1980-08-16'))
;
// Pass the item total callback
$paginator->setItemTotalCallback(function () use ($query) {
// Run the count of all records
$query
->select('COUNT(f.id)')
;
// Return the total item count
return (int)$query->getQuery()->getSingleScalarResult();
});
// Pass the slice callback
$paginator->setSliceCallback(function ($offset, $length) use ($query) {
// Select and slice the data
$query
->select('f')
->setFirstResult($offset)
->setMaxResults($length)
;
// Return the collection
return $query->getQuery()->getResult();
});
// Finally, paginate using the current page number
$pagination = $paginator->paginate((int)$this->get('request')->query->get('page', 1));
// Pass the pagination object to the view
return $this->render('AcmeDemoBundle:Welcome:index.html.twig', array(
'pagination' => $pagination,
));
}
}
// Get my paginator service from the container
$paginator = $this->get('my_paginator');
// ...
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.