0

i have a problem : I can't add option to my autocomplete generated by Easyadmin.

Here the context

I have a YoloController extends AbstractCrudController

I override createEditFormBuilder with a field :

public function createEditFormBuilder(EntityDto $entityDto, KeyValueStore $formOptions, AdminContext $context): FormBuilderInterface
{
    $formBuilder = parent::createEditFormBuilder($entityDto, $formOptions, $context);
    $user = $formBuilder->getData();

        $formBuilder->add('userAddressRestrictions', EntityType::class, [
            'label' => 'Restriction d\'adresses',
            'class' => ClientAddress::class,
            'query_builder' => function (EntityRepository $er) use ($user) {
                return $er->createQueryBuilder('ca')
                    ->where('ca.client IN (:clients)')
                    ->setParameter('clients', $user->getClients());
            },
            'required' => false,
            'multiple' => true,
            'expanded' => false,
            'attr' => ['data-ea-widget' => 'ea-autocomplete'],
        ]);
}

I use a custom html file :

{% extends '@EasyAdmin/crud/edit.html.twig' %}

{% block edit_form %}
    {{ form_start(edit_form) }}
    {{ form_row(edit_form) }}
    {{ form_end(edit_form) }}

{% endblock edit_form %}

{% block body_javascript %}
    {{ parent() }}
    {{ encore_entry_script_tags('user', null, 'super-admin') }}
{% endblock %}

In my user.js file, i want to get the autocomplete generated by easyAdmin on my userAddressRestrictions :

$(document).ready(function () {
    let userAddressRestrictionsElement = $('#User_userAddressRestrictions')[0].selectize;
    userAddressRestrictionsElement.addOption(...);
});

Problem : userAddressRestrictionsElement is undefined

Note : my autocomplete work well. I don't understand why and How get my autocomplete to add options dynamically

What i tried :

- Delete all my JS file to avoid any conflict -- same problem
- use a new TomSelect() because EasyAdmin use it -- error "is not defined"
- use a new Autocomplete() like EasyAdmin did in his app.js -- error "is not defined"
- use a select2() like i use on my normal forms witch they dont use easyAdmin -- error "is not defined"

What i want : i want to can add dynamically options to my autocomplete

I don't know how to proceed, can you help me ?

0 Answers0