EditableSelect () с EntityType не получает идентификатор - Symfony 3.1.10 - PullRequest
0 голосов
/ 17 декабря 2018

Я несколько дней пытался реализовать редактируемый выбор, который получает идентификатор выбранного объекта в списке.Проблема возникает, когда я добавляю jQuery, чтобы сделать это поле выбора редактируемым:

<script>
    $(document).ready(function()
    {
       $('.form-companyName').editableSelect();
    });
</script>

До этого, поскольку я использовал Symfony 3, у меня не было никаких проблем.У меня был свой EntityType в FormType с 'choice_label' => 'companyName', поэтому selectbox всегда получал идентификатор выбранного объекта.

Теперь, с помощью этой функции javascript, selectbox просто получает текст выбранного объекта,но не идентификатор.И, конечно, форма возвращает эту ошибку («это значение недействительно»):

Выбор «Salinas SL» не существует или не является уникальным

Я попытался получить идентификатор, выполнив следующее (он просто получает текст):

'choice_label' => 'companyName'
'choice_value' => 'id'

или записав обратное:

'choice_label' => 'id'
'choice_value' => 'companyName'

Но тогда, по мнению, я простосм. id, а не Name Компании.

Здесь вы можете увидеть некоторую часть моего кода:

FormType

           ->add('companyName', EntityType::class, array(
                'label' => 'Cliente',
                'mapped' => false,
                'required' => false,
                'class' => 'BackendBundle:Company',
                'choice_label' => 'companyName',
                'choice_value' => 'id'
                'attr' => array(
                    'class' => 'form-compName form-control',
                    'data-effects' => 'slide'
                )
            ))

new_project.twig.hmtl

{{form_start(form, {'action':'', 'method':'POST'})}}
        <div class="form-group">                
            {{ form_label(form.companyName) }}

            <div id="widget-companyName" class="{% if not form.companyName.vars.valid %}has-error{% endif %}">
                {{ form_widget(form.companyName, { 'attr': {'autocomplete':'off'} }) }}
            </div>

            <div id="err-companyName" class="message-error">
                {{ form_errors(form.companyName) }}
            </div>            
        </div>

       <div>
           {{ form_widget(form.save) }}
       </div>

       {{form_end(form)}}

Я также пытался добавить это в веточку:

       {% for key,val in form.companyName.vars.choices %}
             {{ form_widget(form.companyName, {'value': val.value, 'attr': {'autocomplete':'off'} }) }}
       {% endfor %}

Имея:

'choice_label' => 'companyName'
'choice_value' => 'id'

Но затем поле выбора все равно получает текст столбца CompanyName (не идентификатор) и просто показывает первый элемент из списка, без дополнительных параметров.

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