//我有一个数组
$arr = array('bu_1' => 'pid_1', 'bu_2' => 'pid_2', ... , 'bu_n' => 'pid_n');
//我想用这个数组匹配数据库的字段, 并取得结果集.
$iof_qb = $em->createQueryBuilder();
$iof_qb->select('iof')
->from('AlbatrossAceBundle:Attachinfo', 'iof')
->leftJoin('iof.bu', 'b')
->leftJoin('iof.project', 'p')
->where('iof.children = 0');
foreach( $arr as $key => $val ) {
$iof_qb->orWhere('b.number = :key AND p.id = :val');
}
//不知道该怎么写下去了.
//想到的办法有, 创建一个数组, 保存setParameters 里的数组. 可orWhere 里又不知道怎么写
DQL里的参数名是不能重复的,所以你可以自己维护一个序列号,对应“第N个键/值对”:
没有实测,只要你标记好什么值对应什么参数就行。