Получение нескольких полей в слушателе событий - PullRequest
0 голосов
/ 11 ноября 2018

Например, если мы получили прослушиватель события POST_SUBMIT,

$builder->get('client')->addEventListener(
  FormEvents::POST_SUBMIT,
  function (FormEvent $event)
  {
    $form = $event->getForm();
    $data = $form->getData();
    if($data) {
      $shippings = $form->getData()->getClientsShippings()->getValues();

      $form->getParent()->add('shipping', EntityType::class, [
        'class' => ClientsShippings::class,
        'placeholder' => 'Wybierz adres dostawy',
        'choices' => $shippings,
        'attr' => [
          'class' => 'chosen-select',
        ],
        'choice_label' => function ($shipping) {
          return "".$shipping->getJson()['clients_shippings']['name']." | ".$shipping->getJson()['clients_shippings']['ulica']." | ".$shipping->getJson()['clients_shippings']['miejscowosc']."";
        }
      ]);
    }
  });

и это дает возможность управлять данными, но только из поля «клиент». Как я могу добавить другие поля в этот EventListener.

Почему? Потому что я хочу создать eventListener для поданных методов доставки, и если я обработаю это событие, я хочу взять поле CollectionType продуктов и проверить, сколько продуктов есть, и посчитать, сколько будет стоить доставка.

Так что мне нужно получить:

Поле CollectionType с именем 'order_products', Имена полей ChoiceType 'order_payment' -> получить таблицу цен (является сущностью),

сделать математику,

и добавьте новое поле TextType со значением, полученным по математике.

Любая идея, как я могу передать более одного поля в EventListener или как это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...