|
- <?php
-
- namespace App\Controller\Admin;
-
- use App\Entity\Configuration;
- use App\Entity\IndividualData;
- use Doctrine\ORM\EntityManagerInterface;
- use Doctrine\ORM\QueryBuilder;
- use EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection;
- use EasyCorp\Bundle\EasyAdminBundle\Collection\FilterCollection;
- use EasyCorp\Bundle\EasyAdminBundle\Config\Actions;
- use EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto;
- use EasyCorp\Bundle\EasyAdminBundle\Dto\SearchDto;
- use Lc\SovBundle\Controller\AbstractAdminController as AbstractCrudController;
- use EasyCorp\Bundle\EasyAdminBundle\Field\EmailField;
- use EasyCorp\Bundle\EasyAdminBundle\Field\TextField;
- use Lc\SovBundle\Field\StatusField;
-
- class IndividualDataCrudController extends AbstractCrudController
- {
- public static function getEntityFqcn(): string
- {
- return IndividualData::class;
- }
-
- public function configureFields(string $pageName): iterable
- {
- return [
- TextField::new('firstname'),
- TextField::new('lastname'),
- EmailField::new('email'),
- TextField::new('introAnswer'),
- StatusField::new('status')->setRequired(false)
- ];
- }
-
- public function persistEntity(EntityManagerInterface $entityManager, $entityInstance): void
- {
- $configurationRepository = $this->getDoctrine()->getRepository(Configuration::class);
-
- $configuration = $configurationRepository->findOneByDevAlias('intro_question');
- $entityInstance->setIntroQuestion($configuration->getValue());
- $entityManager->persist($entityInstance);
- $entityManager->flush();
-
- parent::persistEntity($entityManager, $entityInstance); // TODO: Change the autogenerated stub
- }
-
- public function createIndexQueryBuilder(
- SearchDto $searchDto,
- EntityDto $entityDto,
- FieldCollection $fields,
- FilterCollection $filters
- ): QueryBuilder
- {
- $queryBuilder = parent::createIndexQueryBuilder(
- $searchDto,
- $entityDto,
- $fields,
- $filters
- );
-
- $queryBuilder->andWhere('entity.status = ' . $searchDto->getRequest()->get('status'));
-
- return $queryBuilder;
- }
- }
|