Как проверить тип формы автозаполнения сущности?

У меня есть форма со следующими полями:

$builder
->add('title', 'text')
->add('body', 'textarea')
->add('tags', 'entity', [
'class' => 'AppBundle\Entity\Tag',
'choice_label' => 'name',
'expanded' => false,
'multiple' => true,
]);

Пользователь может выбрать несколько тегов. Все работает отлично. Но теперь, когда количество тегов становится очень большим (более 20000 тегов), рендеринг страницы становится очень медленным, потому что тип объекта загружает весь тег в selectbox. Поэтому я реализую блок выбора автозаполнения jQuery, чтобы предотвратить загрузку всей сущности, но когда я отправляю форму, валидатор по-прежнему загружает все теги для проверки! Как я могу решить эту проблему проверки? Спасибо!

4

Решение

Вместо того, чтобы использовать entity тип поля, используйте простой text тип, который будет принимать идентификатор связанной сущности. Вам также необходимо создать преобразователь данных для преобразования отправленного идентификатора в объект сущности (и наоборот), который будет установлен в сущности данных формы.

Пример преобразователя данных

Проверка будет работать так, как если бы она была entity тип поля, благодаря преобразователю данных.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]