← Back
Editing: ZoneCrudController.php
<?php namespace App\Controller\Admin; use App\Entity\Zone; use App\Service\SolutionService; use Doctrine\ORM\QueryBuilder; use EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection; use EasyCorp\Bundle\EasyAdminBundle\Collection\FilterCollection; use EasyCorp\Bundle\EasyAdminBundle\Config\Filters; use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController; use EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto; use EasyCorp\Bundle\EasyAdminBundle\Dto\SearchDto; use EasyCorp\Bundle\EasyAdminBundle\Field\AssociationField; use EasyCorp\Bundle\EasyAdminBundle\Field\IdField; use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; use EasyCorp\Bundle\EasyAdminBundle\Orm\EntityRepository; class ZoneCrudController extends AbstractCrudController { public function __construct(private readonly SolutionService $solutionService) { } public static function getEntityFqcn(): string { return Zone::class; } public function configureFilters(Filters $filters): Filters { return $filters; } public function configureFields(string $pageName): iterable { return [ IdField::new('id')->hideOnForm(), TextField::new('nom'), AssociationField::new('thematic')->setRequired(false), AssociationField::new('parent')->setRequired(false), ]; } public function createIndexQueryBuilder( SearchDto $searchDto, EntityDto $entityDto, FieldCollection $fields, FilterCollection $filters ): QueryBuilder { $qb = $this->container->get(EntityRepository::class)->createQueryBuilder( $searchDto, $entityDto, $fields, $filters ); $qb->leftJoin('entity.root', 'zr') ->leftJoin('zr.thematic', 't') ->andWhere('t.solution = :solution') ->setParameter('solution', $this->solutionService->getCurrent()); return $qb; } }
Save File
Cancel