Например, если мы получили прослушиватель события 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 или как это сделать?