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.

45 lines
1.4KB

  1. <?php
  2. namespace Lc\CaracoleBundle\Form\Order;
  3. use Doctrine\ORM\EntityManagerInterface;
  4. use Lc\CaracoleBundle\Model\Order\OrderProductInterface;
  5. use Symfony\Component\Form\AbstractType;
  6. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  7. use Symfony\Component\Form\Extension\Core\Type\NumberType;
  8. use Symfony\Component\Form\FormBuilderInterface;
  9. use Symfony\Component\OptionsResolver\OptionsResolver;
  10. use Lc\CaracoleBundle\Form\Product\ProductToIdTransformer;
  11. class OrderProductType extends AbstractType
  12. {
  13. protected EntityManagerInterface $entityManager;
  14. protected ProductToIdTransformer $productTransformer;
  15. public function __construct(EntityManagerInterface $entityManager, ProductToIdTransformer $productTransformer)
  16. {
  17. $this->entityManager = $entityManager;
  18. $this->productTransformer = $productTransformer;
  19. }
  20. public function buildForm(FormBuilderInterface $builder, array $options)
  21. {
  22. $builder
  23. ->add('quantityOrder', NumberType::class)
  24. ->add('product', HiddenType::class);
  25. $builder->get('product')->addModelTransformer($this->productTransformer);
  26. }
  27. public function configureOptions(OptionsResolver $resolver)
  28. {
  29. $resolver->setDefaults(
  30. [
  31. 'data_class' => $this->entityManager->getEntityName(
  32. OrderProductInterface::class
  33. ),
  34. ]
  35. );
  36. }
  37. }