zuni / datatablebundle
Symfony DataTableBundle
Installs: 198
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 5
Forks: 2
Open Issues: 0
Language:JavaScript
Type:symfony-bundle
Requires
- php: >=5.3.3
- symfony/symfony: 2.*
Requires (Dev)
- php: >=5.3.3
- symfony/symfony: 2.*
This package is not auto-updated.
Last update: 2024-05-07 03:51:49 UTC
README
Exmplo de uso
Controlador
/** *
-
@Route("/grid/ajax", name="cidade_grid")
-
@Secure(roles="ROLE_CIDADE_SHOW") */ public function gridAction(Request $request) { $dataTable = $this->createDataTable($request);
$dataTable ->addColumn('id') ->addColumn('nome') ->addColumn('estado.nome') ->addColumnAction($this->getDataTableActionsDefault()) ;
$dataTable->setDqlPart('{estado.nome} = :estadoNome'); $dataTable->setDqlParam(array('estadoNome' => 'sc'));
return $this->getDataTableResponse($dataTable); }
Index
{{ "cidade.id"|trans }} | {{ "cidade.nome"|trans }} | {{ "estado.titulo"|trans }} | {{"grid.acoes"|trans}} |
---|
Métodos requeridos no controlador Super
/** *
-
Create new DataTable for response json
-
@param \Symfony\Component\HttpFoundation\Request $request
-
@param string $condition DQL Contidion
-
@param arrray $paramCondition
-
@param type $entity
-
@return \Zuni\DataTableBundle\Entity\DataTable */ protected function createDataTable(Request $request, $condition = "", array $paramCondition = array(), $entity = null) { $entity = $entity ? $entity : $this->getNameEntity()." AS e";
return new \Zuni\DataTableBundle\Entity\DataTable($request, $this->get("templating"), $this->getTwigLoaderString(), $entity); }
/** *
-
Create Data Table Response
-
@param \Zuni\DataTableBundle\Entity\DataTable $dataTable
-
@return \Symfony\Component\HttpFoundation\JsonResponse */ protected function getDataTableResponse(\Zuni\DataTableBundle\Entity\DataTable $dataTable, $collectionsEntity = null ) { $arrayData = $dataTable->getData($this->getDoctrine()->getManager(), $collectionsEntity);
return new JsonResponse($arrayData); }
/** *
-
Clona e modifica o twig do symfony para renderizar strings
-
@return \Symfony\Bridge\Twig\TwigEngine */ protected function getTwigLoaderString() { $twigLoaderString = clone $this->get('twig'); $twigLoaderString->setLoader(new Twig_Loader_String());
return $twigLoaderString; }
/** *
-
Retorna as ações padrão da entidade
-
@todo Mudar as ações da DataTable para uma classe do bundle
-
@return array */ protected function getDataTableActionsDefault() { $entity = $this->getAliasEntity(); $entityUpperCase = strtoupper($entity);
return array( 'show' => array( 'route' => $entity.'show', 'role' => "ROLE{$entityUpperCase}_SHOW" ), 'edit' => array( 'route' => $entity.'edit', 'role' => "ROLE{$entityUpperCase}_EDIT" ), 'delete' => array( 'route' => $entity.'delete_ajax', 'role' => "ROLE{$entityUpperCase}_EDIT" ), ); }