src/Form/WayBillForm.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Parcel;
  4. use App\Entity\Station;
  5. use App\Entity\WayBill;
  6. use Doctrine\ORM\EntityRepository;
  7. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  8. use Symfony\Component\Form\AbstractType;
  9. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  10. use Symfony\Component\Form\Extension\Core\Type\CollectionType;
  11. use Symfony\Component\Form\Extension\Core\Type\IntegerType;
  12. use Symfony\Component\Form\Extension\Core\Type\TextType;
  13. use Symfony\Component\Form\FormBuilderInterface;
  14. use Symfony\Component\OptionsResolver\OptionsResolver;
  15. class WayBillForm extends AbstractType
  16. {
  17.     public function buildForm(FormBuilderInterface $builder, array $options) {
  18.         $builder
  19.             ->add('receiverName'TextType::class)
  20.             ->add('receiverPhoneNumber'TextType::class)
  21.             ->add('senderName'TextType::class)
  22.             ->add('senderPhoneNumber'TextType::class)
  23.             ->add('toStation'EntityType::class, [
  24.                 'class' => Station::class,
  25.                 'query_builder' => function(EntityRepository $er){
  26.                     return $er->createQueryBuilder('i')
  27.                         ->andWhere('i.isMobile = false')
  28.                         ->setMaxResults(50);
  29.                 },
  30.                 'placeholder' => 'Please Select Destination',
  31.             ])
  32.             ->add('transaction'TransactionForm::class)
  33.             ->add('parcelValue'IntegerType::class)
  34.             ->add('parcels'CollectionType::class, [
  35.                 'entry_type' => ParcelForm::class,
  36.                 'allow_add' => true,
  37.                 'prototype' => true,
  38.                 'entry_options' => [
  39.                     'label' => false
  40.                 ],
  41.                 'allow_delete' => true,
  42.                 'by_reference' => false,
  43.                 'delete_empty' => function (Parcel $parcel null) {
  44.                     return null === $parcel || empty($parcel->getDescription());
  45.                 },
  46.             ]);
  47.     }
  48.     public function configureOptions(OptionsResolver $resolver) {
  49.         $resolver
  50.             ->setDefaults([
  51.                 'data_class' =>WayBill::class,
  52.                 'validation_groups' => [
  53.                     'Default','collection'
  54.                 ]
  55.             ]);
  56.     }
  57.     public function getBlockPrefix()
  58.     {
  59.         return 'app_bundle_way_bill_form';
  60.     }
  61. }