Я настраиваю расширенный поиск доски объявлений и мне нужно найти резюме по контракту, зная, что в резюме может быть несколько контрактов.
У меня есть форма, в которой вы можете выбрать, какой тип контракта вы ищете (это ChoiceType::class с несколькими => true)
В моем репозитории:
public function findByContract(array $contract)
{
return $this->createQueryBuilder('r')
->andWhere('r.contract = :con')
->setParameter('con', array($contract))
->getQuery()
->getResult()
;
}
В моем контроллере:
public function index(Request $request, ResumeRepository $resumeRepository)
{
$formSearch = $this->createForm(ResumeSearchFormType::class);
$formSearch->handleRequest($request);
if ($formSearch->isSubmitted() && $formSearch->isValid()) {
$data = $formSearch->getData();
$r = $resumeRepository->findByContract($data->getContract());
var_dump($r); die;
Этот var_dump() возвращает пустой массив.
Я не знаю, как установить несколько параметров для одного и того же ключа






public function findByContract(array $contract)
{
return $this->createQueryBuilder('r')
->andWhere('r.contract IN (:contracts)')
->setParameter('contracts', $contract)
->getQuery()
->getResult()
;
}
Можешь опубликовать var_dump($contract) результат?
массив (размер=2) 0 => строка 'CDI' (длина=3) 1 => строка 'CDD' (длина=3)
Хорошо, если r.contract == CDD or r.contract == CDI вы получите предметы. Если нет, вы можете проверить строку запроса в Symfony Profiler.
В моем резюме таблицы в phpMyAdmin контракт столбца выглядит так:
И в профилировщике исполняемый запрос:
SELECT r0_.id AS id_0, r0_.city AS city_1, r0_.postal_code AS postal_code_2, r0_.salary AS salary_3, r0_.contract AS contract_4, r0_.experience AS experience_5, r0_.training AS training_6, r0_.motivations AS motivations_7, r0_.ext AS ext_8, r0_.name AS name_9 FROM resume r0_ WHERE r0_.contract IN ('CDI', 'CDD');
Итак, есть много резюме, где r.contract == CDD или r.contract == CDI, но запрос все равно возвращает пустой массив
Привет ! Спасибо за ответ, теперь у меня установлено несколько параметров! Но мой var_dump() все равно возвращает пустой массив. Ты знаешь почему ?