1. Go to this page and download the library: Download imt/data-grid 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/ */
imt / data-grid example snippets
namespace Acme\PostBundle\DataGrid\Builder;
use Symfony\Component\Routing\RouterInterface;
use Doctrine\ORM\EntityManager;
use IMT\DataGrid\Builder\AbstractBuilder;
use IMT\DataGrid\Column\Column;
use IMT\DataGrid\DataSource\Doctrine\ORM\DataSource;
class PostBuilder extends AbstractBuilder
{
/**
* @var EntityManager
*/
protected $entityManager;
/**
* @var RouterInterface
*/
protected $router;
/**
* The constructor method
*
* @param RouterInterface $router
* @param EntityManager $entityManager
*/
public function __construct(
RouterInterface $router,
EntityManager $entityManager
) {
$this->router = $router;
$this->entityManager = $entityManager;
}
/**
* {@inheritDoc}
*/
public function buildColumns()
{
$this
->dataGrid
->addColumn(
new Column(
array(
'index' => 'p.id',
'label' => 'Id',
'name' => 'post_id',
)
)
)
->addColumn(
new Column(
array(
'index' => 'p.title',
'label' => 'Title',
'name' => 'title',
)
)
);
}
/**
* {@inheritDoc}
*/
public function buildDataSource()
{
$queryBuilder = $this
->entityManager
->createQueryBuilder()
->select(
'p',
'p.id AS post_id',
'p.title'
)
->from('AcmePostBundle:Post', 'p');
$this->dataGrid->setDataSource(new DataSource($queryBuilder));
}
/**
* {@inheritDoc}
*/
public function buildOptions()
{
$this
->dataGrid
->setName('posts')
->setOptions(
array(
'caption' => 'Posts',
'datatype' => 'json',
'mtype' => 'get',
'pager' => '#posts_pager',
'rowList' => array(
10,
20,
30,
),
'rowNum' => 10,
'url' => $this
->router
->generate('acme_post_post_get_posts'),
)
);
}
}
namespace Acme\PostBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use IMT\DataGrid\HttpFoundation\JqGridRequest;
use Acme\PostBundle\DataGrid\Builder\PostBuilder;
class PostController extends Controller
{
/**
* @Method("GET")
* @Route("/posts/", name="acme_post_post_get_posts")
* @Template("AcmePostBundle:Post:list.html.twig")
*/
public function getPostsAction(Request $request)
{
$dataGrid = $this
->getDataGridManager()
->setBuilder(
new PostBuilder(
$this->getRouter(),
$this->getDoctrine()->getEntityManager()
)
)
->buildDataGrid()
->getDataGrid();
if ($request->isXmlHttpRequest()) {
$dataGrid->bindRequest(new JqGridRequest($request));
return new Response(
json_encode($dataGrid->getData()),
200,
array(
'Content-Type' => 'application/json',
)
);
}
return array(
'dataGrid' => $dataGrid->createView(),
);
}
/**
* @return \IMT\DataGrid\Manager\ManagerInterface
*/
private function getDataGridManager()
{
return $this->get('imt_data_grid.manager');
}
/**
* @return \Symfony\Component\Routing\RouterInterface
*/
private function getRouter()
{
return $this->get('router');
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.