src/Bidcoz/Bundle/FrontendBundle/Form/Type/SponsorshipType.php line 20

Open in your IDE?
  1. <?php
  2. namespace Bidcoz\Bundle\FrontendBundle\Form\Type;
  3. use Bidcoz\Bundle\CoreBundle\Entity\Image;
  4. use Bidcoz\Bundle\CoreBundle\Entity\Sponsorship\Sponsorship;
  5. use Bidcoz\Bundle\CoreBundle\Entity\Sponsorship\SponsorshipLevel;
  6. use Doctrine\ORM\EntityRepository;
  7. use RS\DiExtraBundle\Annotation as DI;
  8. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  9. use Symfony\Component\Form\AbstractType;
  10. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  11. use Symfony\Component\Form\Extension\Core\Type\UrlType;
  12. use Symfony\Component\Form\FormBuilderInterface;
  13. use Symfony\Component\OptionsResolver\OptionsResolver;
  14. /**
  15.  * @DI\FormType
  16.  */
  17. class SponsorshipType extends AbstractType
  18. {
  19.     private $transformerFactory;
  20.     /**
  21.      * @DI\InjectParams({
  22.      *      "transformerFactory" = @DI\Inject("bidcoz.form.entity_transformer_factory"),
  23.      * })
  24.      */
  25.     public function __construct($transformerFactory)
  26.     {
  27.         $this->transformerFactory $transformerFactory;
  28.     }
  29.     public function buildForm(FormBuilderInterface $builder, array $options)
  30.     {
  31.         $campaign $options['campaign'];
  32.         $builder
  33.             ->add('url'UrlType::class)
  34.             ->add('level'EntityType::class, [
  35.                 'class'         => SponsorshipLevel::class,
  36.                 'choice_label'  => 'label',
  37.                 'query_builder' => function (EntityRepository $repo) use ($campaign) {
  38.                     $qb $repo->findAllActiveForCampaignQueryBuilder($campaign);
  39.                     $qb->orderBy('sl.price''DESC');
  40.                     return $qb;
  41.                 },
  42.             ])
  43.             ->add('image'HiddenType::class)
  44.         ;
  45.         // Set the transformers
  46.         $imageTransformer $this->transformerFactory->create(Image::class);
  47.         $builder->get('image')->addViewTransformer($imageTransformer);
  48.     }
  49.     public function configureOptions(OptionsResolver $resolver)
  50.     {
  51.         $resolver->setDefaults([
  52.             'data_class' => Sponsorship::class,
  53.             'campaign'   => null,
  54.         ]);
  55.     }
  56.     public function getBlockPrefix()
  57.     {
  58.         return 'sponsorship';
  59.     }
  60. }