如何在 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 == CDD
或r.contract == CDI
,但查询仍然return一个空数组
我正在为工作板设置高级搜索,我需要按合同查找简历,我知道一份简历可以有多个合同。
我有一个表格,您可以在其中选择您要查找的合同类型(这是一个 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 == CDD
或r.contract == CDI
,但查询仍然return一个空数组