Эй, на вашем месте я бы создал formType с двумя типами сущностей для формы поиска, а затем использовал бы Ajax для результатов.
SearchFormType.php:
public function buildForm(FormBuilderInterface $builder, array $options){
$builder->add(
'skill',
EntityType::class,
[
'class' => Skill::class,
]
)
->add(
'skillLevel',
EntityType::class,
[
'class' => SkillLevel::class,
]
);
}
Затем используйтеjquery для перехвата отправки и отправки его через Ajax:
app.js:
$('#form').on('submit', (e) => {
e.preventDefault();
$.ajax({
url: $form.attr('action'),
type: 'POST',
dataType: 'json',
data: $form.serialize(),
success: (response) => {
//Display results in div
}
})
})
И, наконец, обработайте ответ Ajax в контроллере
Controller.php:
public function search(Request $request){
if ($request->isXmlHttpRequest()) {
$search = $this->createForm(SearchFormType::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$searchData = $form->getData();
//Do what you want with the data and return a json response with the results
return new JsonResponse([$results], 200);
}
}
}
Вам нужно будет добавить код, который запрашивает в базе данных результаты и обработку ошибок, чтобы это завершилось.
Возможно, я что-то пропустил, так что если вы попробуете этоподход, и это не работает, не стесняйтесь оставить комментарий, и я буду копать глубже.