Отсутствуют данные после самостоятельной работы по пользовательскому суббонскому субъектуPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Отсутствуют данные после самостоятельной работы по пользовательскому суббонскому субъекту

Сообщение Anonymous »

В Symfony я пытаюсь создать тип, основанный на EntityType. Идея состоит в том, чтобы иметь поле EntityType, параметры которого загружаются через AJAX (используя библиотеку Selectize). Однако, как только опция была выбрана, мне нужно динамически добавить его в свой тип. Для этого я использую eventlistener на FormEvents :: post_submit , чтобы обновить свое поле с помощью опции. К сожалению, поле больше не присутствует в $ form-> getData () после отправки.
my type:
class ClientEntityType extends AbstractType
{
public function __construct(
private readonly ClientsRepository $clientsRepository,
private readonly RouterInterface $router,
) {
}

public function getParent(): string
{
return EntityType::class;
}

public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults($this->getOptions());
}

public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event): void {
$data = $event->getData();
$form = $event->getForm();

$options = $this->getOptions();

if ($data) {
$client = $this->clientsRepository->find($data);

$choices = [];
$choices[(string) $client] = $client;

$options['choices'] = $choices;
$options['data'] = $client;
}

$form->getParent()->add(
$form->getName(),
self::class,
$options
);
});
}

private function getOptions(): array
{
return [
'class' => Clients::class,
'label' => 'Client',
'required' => false,
'attr' => [
'class' => 'clientSelect',
'data-search-url' => $this->router->generate('admin_client_search'),
],
'placeholder' => 'Choisir une société',
'choices' => [],
];
}
}
< /code>
тип моей формы: < /p>
class InvoiceListType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
// ...
->add('client', ClientEntityType::class);
}
}
< /code>
Мой контроллер: < /p>
$form = $this->createForm(InvoiceListType::class, $data);

if (
$form->handleRequest($request)->isSubmitted()
&& $form->isValid()
) {
$data = $form->getData();

$data['client'] // Is missing!

// But I get the value with:
$form->get('client')->getData();
}


Подробнее здесь: https://stackoverflow.com/questions/797 ... y-sub-type
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»