Я новичок в Symfony 4 и пытаюсь создать список флажков с помощью поисковика в следующей ситуации:
У меня есть сущность с именем SAI , и эта сущность может «принадлежать» многим пользователям (поэтому у меня есть сущность с именем Пользователь ).
У меня есть контроллер AddSAIController.php , где я управляю, как добавить SAI. И когда я добавляю его, я хочу отобразить форму, в которой пользователь может ввести serial_number SAI и проверить, какие пользователи владеют этим SAI. Проблема в том, что у меня будет много пользователей в базе данных, и мне нужен поисковик, чтобы быстрее найти нужных пользователей.
Прежде всего я попытался создать список флажков, следуя документации на https://symfony.com/doc/current/form/form_collections.html, Мне удалось показать пользователей, но не с флажками, как я хотел, вместо этого он показывает их как ввод тип текста.
Вот так.
Это мой код:
add_sais.html.twig
{% block body %}
<div class="main">
<h1>Add SAI</h1>
<hr>
<div class="formUsers">
{{ form_start(form) }}
{% for user in form.users %}
{{ form_row(user.username) }}
{% endfor %}
{{ form_end(form) }}
</div>
</div>
{% endblock %}
AddSAIsController.php
public function addSAI(Request $request)
{
$sai = new SAI();
$users = $this->getDoctrine()->getRepository(User::class)->findAll();
$sai->setUsers($users);
$form = $this->createForm(SAIType::class,$sai);
$form->handleRequest($request);
return $this->render('management/add_sais.html.twig', array(
'form' => $form->createView(),
));
}
UsersType.php
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('username');
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => User::class,
));
}
SAIType.php
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('serial_number');
$builder->add('users', CollectionType::class, array(
'entry_type' => UsersType::class,
'entry_options' => array('label' => false),
));
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => SAI::class,
));
}
Пока я был бы рад некоторой помощи в создании флажков, я сделаю поиск позже.