Как установить несколько параметров для одного и того же ключа в Doctrine Query - PullRequest
0 голосов
/ 19 июня 2019

Я настраиваю расширенный поиск доски объявлений, и мне нужно найти резюме по контракту, зная, что резюме может иметь несколько контрактов.

У меня есть форма, в которой вы можете выбрать, какой тип контракта вы ищете (это 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 () возвращает пустой массив.

Я не знаю, как установить несколько параметров для одной и той же клавиши

Ответы [ 2 ]

1 голос
/ 19 июня 2019

Использование IN условие :

public function findByContract(array $contract)
{
    return $this->createQueryBuilder('r')
        ->andWhere('r.contract IN (:contracts)')
        ->setParameter('contracts', $contract)
        ->getQuery()
        ->getResult()
    ;
}
0 голосов
/ 19 июня 2019

В моей таблице резюме в phpMyAdmin столбец контракта выглядит так:

enter image description here

А в профилировщике запускаемый запрос:

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, но запрос по-прежнему возвращает пустой массив

...