src/AdminBundle/Admin/SubAutoSite/TestDriveAdmin.php line 15

Open in your IDE?
  1. <?php
  2. namespace AdminBundle\Admin\SubAutoSite;
  3. use CoreBundle\Entity\Vehicles\Vehicle;
  4. use Doctrine\ORM\EntityRepository;
  5. use Sonata\AdminBundle\Datagrid\ListMapper;
  6. use Sonata\AdminBundle\Datagrid\ProxyQueryInterface;
  7. use Sonata\AdminBundle\Form\FormMapper;
  8. use Sonata\AdminBundle\Route\RouteCollectionInterface;
  9. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  10. class TestDriveAdmin extends BaseImporterAdmin
  11. {
  12.     /**
  13.      * @param RouteCollectionInterface $collection
  14.      */
  15.     protected function configureRoutes(RouteCollectionInterface $collection): void
  16.     {
  17.         $collection->remove('view');
  18.     }
  19.     /**
  20.      * @param $object
  21.      */
  22.     public function prePersist($object): void
  23.     {
  24.         $dealer $this->security->getUser()->getSubDealer();
  25.         $object->setDealer($dealer);
  26.     }
  27.     /**
  28.      * @param string $context
  29.      * @return ProxyQueryInterface
  30.      */
  31.     public function configureQuery($context 'list'): ProxyQueryInterface
  32.     {
  33.         $user $this->security->getUser();
  34.         $dealer $user->getSubDealer();
  35.         $query parent::configureQuery($context);
  36.         $query->andWhere(
  37.             $query->expr()->eq($query->getRootAliases()[0] . '.dealer'':dealer')
  38.         );
  39.         $query->setParameter('dealer'$dealer);
  40.         return $query;
  41.     }
  42.     /**
  43.      * @param FormMapper $formMapper
  44.      */
  45.     protected function configureFormFields(FormMapper $formMapper): void
  46.     {
  47.         $user $this->security->getUser();
  48.         $formMapper
  49.             ->with(' ', ['class' => 'col-lg-6 without-box-heder'])
  50.             ->add('vehicle'EntityType::class, [
  51.                 'class' => Vehicle::class,
  52.                 'label' => 'Транспортний засіб',
  53.                 'query_builder' => fn(EntityRepository $en) => $en->createQueryBuilder('v')
  54.                     ->where('v.dealer = :dealer')
  55.                     ->setParameter('dealer'$user->getSubDealer()->getBrand()->getDealer()->first()),
  56.             ],
  57.                 [
  58.                     'admin_code' => 'admin.vehicles.passenger_vehicle'
  59.                 ]
  60.             )
  61.             ->end()
  62.             ->end()
  63.         ;
  64.     }
  65.     /**
  66.      * @param ListMapper $listMapper
  67.      */
  68.     protected function configureListFields(ListMapper $listMapper): void
  69.     {
  70.         $listMapper
  71.             ->add('vehicle.model'null, ['label' => 'Модель'])
  72.             ->add('_action'null, [
  73.                 'actions' => [
  74.                     'edit' => [],
  75.                 ],
  76.             ])
  77.         ;
  78.     }
  79. }