src/Admin/UAlunoAdmin.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 UAlunoAdmin extends AbstractAdmin
  10. {
  11.     protected function configureDatagridFilters(DatagridMapper $datagridMapper): void
  12.     {
  13.         $datagridMapper
  14.             ->add('id')
  15.             ->add('nome')
  16.             ->add('email')
  17.             ->add('whatsapp')
  18.             ->add('cidade')
  19.             ->add('Uf')
  20.             ->add('genero')
  21.             ->add('dataNascimento')
  22.             ->add('avatar')
  23.             ->add('cpf')
  24.             ->add('cep')
  25.             ;
  26.     }
  27.     protected function configureListFields(ListMapper $listMapper): void
  28.     {
  29.         $listMapper
  30.             ->add('nome')
  31.             ->add('email')
  32.             ->add('whatsapp')
  33.             ->add('cidade')
  34.             ->add('Uf')
  35.             ->add('_action'null, [
  36.                 'actions' => [
  37.                     'show' => [],
  38.                     'edit' => [],
  39.                     'delete' => [],
  40.                 ],
  41.             ]);
  42.     }
  43.     protected function configureFormFields(FormMapper $formMapper): void
  44.     {
  45.         $formMapper
  46.             ->add('nome')
  47.             ->add('whatsapp')
  48.             ->add('cidade')
  49.             ->add('Uf')
  50.             ->add('genero')
  51.             ->add('dataNascimento')
  52.             ->add('avatar')
  53.             ->add('cpf')
  54.             ->add('cep')
  55.             ;
  56.     }
  57.     protected function configureShowFields(ShowMapper $showMapper): void
  58.     {
  59.         $showMapper
  60.             ->add('id')
  61.             ->add('nome')
  62.             ->add('usuario.email')
  63.             ->add('whatsapp')
  64.             ->add('cidade')
  65.             ->add('Uf')
  66.             ->add('genero')
  67.             ->add('dataNascimento')
  68.             ->add('avatar')
  69.             ->add('cpf')
  70.             ->add('cep')
  71.             ;
  72.     }
  73.     
  74.     public function preRemove($object): void
  75.     {
  76.         parent::preRemove($object);
  77.         
  78.         // Remove todas as respostas do aluno antes de deletá-lo
  79.         $em $this->getModelManager()->getEntityManager(\App\Entity\URespostaPerguntaModulo::class);
  80.         
  81.         $respostas $em->getRepository(\App\Entity\URespostaPerguntaModulo::class)
  82.             ->findBy(['aluno' => $object]);
  83.         
  84.         foreach ($respostas as $resposta) {
  85.             $em->remove($resposta);
  86.         }
  87.         
  88.         $em->flush();
  89.     }
  90. }