src/AdminBundle/Admin/Insurance/MediationServiceMediatorAdmin.php line 13

Open in your IDE?
  1. <?php
  2. namespace AdminBundle\Admin\Insurance;
  3. use AdminBundle\Admin\BaseAdmin;
  4. use InsuranceBundle\Entity\MediationService;
  5. use Sonata\AdminBundle\Datagrid\ListMapper;
  6. use Sonata\AdminBundle\Form\FormMapper;
  7. use Sonata\AdminBundle\Form\Type\ModelType;
  8. use Sonata\AdminBundle\Route\RouteCollectionInterface;
  9. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  10. class MediationServiceMediatorAdmin extends BaseAdmin
  11. {
  12.     protected function configureRoutes(RouteCollectionInterface $collection): void
  13.     {
  14.         $collection->remove('view');
  15.         $collection->remove('delete');
  16.     }
  17.     public function prePersist($object): void
  18.     {
  19.         parent::prePersist($object);
  20.     }
  21.     public function preUpdate($object): void
  22.     {
  23.         parent::preUpdate($object);
  24.     }
  25.     protected function configureFormFields(FormMapper $formMapper): void
  26.     {
  27.         $queryBuilder $this->getModelManager()
  28.             ->getEntityManager(MediationService::class)
  29.             ->createQueryBuilder('mediation_service')
  30.             ->select('mediation_service')
  31.             ->from(MediationService::class, 'mediation_service');
  32.         $formMapper
  33.             ->add('title_ua'null, ['label' => 'Название UA'])
  34.             ->add('title_ru'null, ['label' => 'Название RU'])
  35.             ->add('state'null, ['label' => 'Показывать на сайте'])
  36.             ->add('mediation_service'ModelType::class, [
  37.                 'label' => 'Услуга',
  38.                 'query' => $queryBuilder,
  39.                 'btn_add' => false,
  40.                 'required' => true,
  41.                 'multiple' => false,
  42.             ])
  43.             ->end();
  44.     }
  45.     /**
  46.      * @param ListMapper $listMapper
  47.      */
  48.     protected function configureListFields(ListMapper $listMapper): void
  49.     {
  50.         $queryBuilder $this->getModelManager()
  51.             ->getEntityManager(MediationService::class)
  52.             ->createQueryBuilder('mediation_service')
  53.             ->select('mediation_service')
  54.             ->from(MediationService::class, 'mediation_service');
  55.         /** @var MediationService $item */
  56.         foreach ($queryBuilder->getQuery()->getResult() as $item) {
  57.             $models[$item->getId()] = $item->getTitleRu();
  58.         }
  59.         $listMapper->addIdentifier('id')
  60.             ->add('title_ru'null, ['label' => 'Название'])
  61.             ->add('state'null, ['label' => 'Отображаеться на сайте''editable' => true'choices' => [
  62.                 => 'Да',
  63.                 => 'Нет',
  64.                 null => 'Нет']])
  65.             ->add('mediation_service'EntityType::class, [
  66.                 'class' => MediationService::class,
  67.                 'label' => 'Услуга',
  68.             ])
  69.             ->add('_action''actions', [
  70.                 'label' => 'Действия',
  71.                 'actions' => [
  72.                     'edit' => [],
  73.                 ]
  74.             ]);
  75.     }
  76. }