Symfony 4.4 Форма мультиселекта bootstrap - PullRequest
0 голосов
/ 21 января 2020

Я пытаюсь изменить представление формы EntityType для чего-то похожего на: http://davidstutz.de/bootstrap-multiselect/#templates

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

Теперь проблема возникает, когда я вносю изменения в свой _form. html .twig или в Type. php файл, на самом деле после всех моих попыток я не вижу, где внести изменения.

Мой _form. html .twig

  {{ form_start(form) }}
    {{ form_widget(form) }}
    {{ form_widget(form.Service) }}
  <table width=100% cellpadding="10"><tr></tr><tr><td>
    <button class="btn btn-success btn-icon-split">
      <span class="icon text-white-50">
          <i class="fas fa-save"></i>
      </span>
    </button>
  </td>
{{ form_end(form) }}

My UtilisateursType. php

<?php

namespace App\Form;

use App\Entity\Utilisateurs;
use App\Entity\Services;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Doctrine\ORM\EntityRepository;

class UtilisateursType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('Nom')
            ->add('Login')
            ->add('PartagePerso')
            ->add('Service', EntityType::class, [
              'class' => Services::class,
              'query_builder' => function (EntityRepository $Service) {
                return $Service->createQueryBuilder('u')
                ->orderBy('u.Nom', 'ASC');
              },
              'choice_label' => 'Nom',
              'multiple' => true,
              'expanded' => false,
            ])
        ;
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' => Utilisateurs::class,
        ]);
    }
}

Спасибо за помощь

1 Ответ

0 голосов
/ 21 января 2020

Symfony обернет каждое поле элементом html (<div>), и для изменения этого поведения вы должны переопределить его. см. form_themes

, прежде всего создайте шаблон, например: template / form / my_custom_entity_service. html .twig

{% use 'form_div_layout.html.twig' %}

{% block entity_row %}
        {{ form_label(form) }}
        <table width=100% cellpadding="10">
          <tr>
           <td>
           {{ form_widget(form) }}
           </td>
          </tr>
        </table>
{% endblock %}

, затем вызовите его в своей _form. html .twig

{% form_theme form 'form/my_custom_entity_service.html.twig' %}

{{ form_start(form) }}

{{ form_widget(form.Nom) }}
{{ form_widget(form.Login) }}
{{ form_widget(form. PartagePerso) }}
{{ form_widget(form.Service) }}

{{ form_end(form) }}

Примечание: неправильный способ вызова формы в вашем коде учитывает {{ form_rest(form) }}

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