src/Admin/SecaoDownloadAdmin.php line 13

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Admin;
  4. use Sonata\AdminBundle\Admin\AbstractAdmin;
  5. use Sonata\AdminBundle\Datagrid\DatagridMapper;
  6. use Sonata\AdminBundle\Datagrid\ListMapper;
  7. use Sonata\AdminBundle\Form\FormMapper;
  8. use Sonata\AdminBundle\Show\ShowMapper;
  9. final class SecaoDownloadAdmin extends AbstractAdmin
  10. {
  11.     protected $datagridValues = [
  12.         '_page'         => 1,
  13.         '_sort_order'   => 'DESC',
  14.         '_sort_by'      => 'nome'
  15.     ];
  16.     protected function configureDatagridFilters(DatagridMapper $datagridMapper): void
  17.     {
  18.         $datagridMapper
  19.             ->add('nome','doctrine_orm_callback',[
  20.                 'label'=>'Nome',
  21.                 'callback'   => array($this'filterNome'),
  22.             ])
  23.             ->add('descricao','doctrine_orm_callback',[
  24.                 'label'=>'Descrição',
  25.                 'callback'   => array($this'filterDescricao'),
  26.             ])
  27.             ;
  28.     }
  29.     public function filterNome($queryBuilder$alias$field$value)
  30.     {
  31.         if (!$value['value']) {
  32.             return;
  33.         }
  34.         $value mb_strtolower($value['value']);
  35.         $queryBuilder
  36.             ->andWhere("UNACCENT(LOWER($alias.nome)) LIKE UNACCENT(:nome)" )
  37.             ->setParameter('nome'"%$value%");
  38.         return true;
  39.     }
  40.     public function filterDescricao($queryBuilder$alias$field$value)
  41.     {
  42.         if (!$value['value']) {
  43.             return;
  44.         }
  45.         $value mb_strtolower($value['value']);
  46.         $queryBuilder
  47.             ->andWhere("UNACCENT(LOWER($alias.descricao)) LIKE UNACCENT(:nome)" )
  48.             ->setParameter('nome'"%$value%");
  49.         return true;
  50.     }
  51.     protected function configureListFields(ListMapper $listMapper): void
  52.     {
  53.         $listMapper
  54.             ->add('nome'null, ['label'=>'Nome'])
  55.             ->add('descricao'null, ['label'=>'Descrição'])
  56.             ->add('_action'null, [
  57.                 'actions' => [
  58.                     'show' => [],
  59.                     'edit' => [],
  60.                     'delete' => [],
  61.                 ],
  62.             ]);
  63.     }
  64.     protected function configureFormFields(FormMapper $formMapper): void
  65.     {
  66.         $formMapper
  67.             ->add('nome'null, ['label'=>'Nome'])
  68.             ->add('descricao'null, ['label'=>'Descrição'])
  69.             ;
  70.     }
  71.     protected function configureShowFields(ShowMapper $showMapper): void
  72.     {
  73.         $showMapper
  74.             ->add('categoriasDownload'null, ['template'=>'Download/lista-arquivos-secao.html.twig'])
  75.             ;
  76.     }
  77. }