Advertisement
Guest User

Untitled

a guest
Sep 20th, 2019
424
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.95 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Form;
  4.  
  5.  
  6. use App\Entity\BestDeal;
  7. use App\Entity\GroupTravelDate;
  8. use App\Entity\BestDealDiscountType;
  9. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  10. use Symfony\Component\Form\FormBuilderInterface;
  11. use Symfony\Component\OptionsResolver\OptionsResolver;
  12. use Symfony\Component\Form\Extension\Core\Type\FileType;
  13.  
  14. use Doctrine\ORM\EntityRepository;
  15.  
  16. class BestDealListType extends BaseAdminType
  17. {
  18.  
  19.     public function buildForm(FormBuilderInterface $builder, array $options)
  20.     {
  21.         $groupTravel = $options['attr'][0];
  22.    
  23.         $today = new \DateTime('now');
  24.      
  25.         $builder->add('title',null,[
  26.             'label' => 'Title',
  27.             'translation_domain' => null
  28.             ])
  29.         ->add('details',null,[
  30.             'label' => 'Description',
  31.             'translation_domain' => null
  32.             ])
  33.  
  34.             ->add('groupTravelPackageDate', EntityType::class, [
  35.                 'required' => true,
  36.                 'class' => GroupTravelDate::class,
  37.                 'query_builder' =>   function (EntityRepository $er) use($today,$groupTravel) {
  38.                     return $er->createQueryBuilder('u')
  39.                     ->andWhere('u.groupTravelPackage >= :groupTravelPackage')
  40.                     ->setParameter('groupTravelPackage', $groupTravel )
  41.                     ->andWhere('u.startDate >= :startDate')
  42.                     ->setParameter('startDate', $today )
  43.                     ->andWhere('u.isDeleted = :isDeleted')
  44.                     ->setParameter('isDeleted', false)
  45.                         ->orderBy('u.startDate', 'ASC');
  46.                 },
  47.                 'choice_label' => function ($groupTravelDate) {
  48.                     return  $groupTravelDate->getStartDate()->format('d-m-Y') . '  -  '. $groupTravelDate->getEndDate()->format('d-m-Y');
  49.                 },
  50.                 'label' => 'Group Travel Date',
  51.                 'translation_domain' => null
  52.             ])
  53.             ->add('temponaryImage', FileType::class, [
  54.                 'label' => 'Add image',
  55.                 'data_class' => null,
  56.                 'required' => false,
  57.                 'translation_domain' => null
  58.             ])
  59.      
  60.             ->add('bestDealDiscountType', EntityType::class, [
  61.                 'class' => BestDealDiscountType::class,
  62.                 'choice_label' => function (BestDealDiscountType $bestDealDiscountType) {
  63.                     return $bestDealDiscountType->getName();
  64.                     },
  65.                 'label' => 'Discount type',
  66.                 'translation_domain' => null
  67.             ])
  68.             ->add('discount',null,[
  69.                 'label' => 'Discount',
  70.                 'translation_domain' => null
  71.                 ])
  72.             ;
  73.         $this->addButtons($builder);
  74.     }
  75.  
  76.     public function configureOptions(OptionsResolver $resolver)
  77.     {
  78.         $resolver->setDefaults([
  79.             'data_class' => BestDeal::class,
  80.         ]);
  81.     }
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement