You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 satır
2.2KB

  1. <?php
  2. namespace App\Controller\Admin;
  3. use App\Entity\Configuration;
  4. use App\Entity\IndividualData;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Doctrine\ORM\QueryBuilder;
  7. use EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection;
  8. use EasyCorp\Bundle\EasyAdminBundle\Collection\FilterCollection;
  9. use EasyCorp\Bundle\EasyAdminBundle\Config\Actions;
  10. use EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto;
  11. use EasyCorp\Bundle\EasyAdminBundle\Dto\SearchDto;
  12. use Lc\SovBundle\Controller\AbstractAdminController as AbstractCrudController;
  13. use EasyCorp\Bundle\EasyAdminBundle\Field\EmailField;
  14. use EasyCorp\Bundle\EasyAdminBundle\Field\TextField;
  15. use Lc\SovBundle\Field\StatusField;
  16. class IndividualDataCrudController extends AbstractCrudController
  17. {
  18. public static function getEntityFqcn(): string
  19. {
  20. return IndividualData::class;
  21. }
  22. public function configureFields(string $pageName): iterable
  23. {
  24. return [
  25. TextField::new('firstname'),
  26. TextField::new('lastname'),
  27. EmailField::new('email'),
  28. TextField::new('introAnswer'),
  29. StatusField::new('status')->setRequired(false)
  30. ];
  31. }
  32. public function persistEntity(EntityManagerInterface $entityManager, $entityInstance): void
  33. {
  34. $configurationRepository = $this->getDoctrine()->getRepository(Configuration::class);
  35. $configuration = $configurationRepository->findOneByDevAlias('intro_question');
  36. $entityInstance->setIntroQuestion($configuration->getValue());
  37. $entityManager->persist($entityInstance);
  38. $entityManager->flush();
  39. parent::persistEntity($entityManager, $entityInstance); // TODO: Change the autogenerated stub
  40. }
  41. public function createIndexQueryBuilder(
  42. SearchDto $searchDto,
  43. EntityDto $entityDto,
  44. FieldCollection $fields,
  45. FilterCollection $filters
  46. ): QueryBuilder
  47. {
  48. $queryBuilder = parent::createIndexQueryBuilder(
  49. $searchDto,
  50. $entityDto,
  51. $fields,
  52. $filters
  53. );
  54. $queryBuilder->andWhere('entity.status = ' . $searchDto->getRequest()->get('status'));
  55. return $queryBuilder;
  56. }
  57. }