如何在 Doctrine Query 中为同一个键设置多个参数

How to set multiple parameters for the same key in Doctrine Query

我正在为工作板设置高级搜索,我需要按合同查找简历,我知道一份简历可以有多个合同。

我有一个表格,您可以在其中选择您要查找的合同类型(这是一个 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() returns一个空数组。

我不知道如何为同一个键设置多个参数

使用IN condition:

public function findByContract(array $contract)
{
    return $this->createQueryBuilder('r')
        ->andWhere('r.contract IN (:contracts)')
        ->setParameter('contracts', $contract)
        ->getQuery()
        ->getResult()
    ;
}

在我的 table 简历中,在 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 == CDDr.contract == CDI,但查询仍然return一个空数组