我正在尝试创建一个查询姓氏和名字的查询。这是我的原始查询。
$em = $this->getDoctrine()->getManager();
$qb = $em->createQueryBuilder();
$qb ->select('a.firstName, a.lastName, a.relationship,
a.dateOfBirth, a.barcode1, a.phoneNumber, ea.address1,
ea.address2, ea.city, ea.state, ea.country, ea.postal,
s.name, s.keynoteSpeaker,
ci.created, \'checkin\' AS event')
->from('KCMApiBundle:EventSessionCheckin', 'ci')
->innerJoin('ci.eventSession', 's')
->innerJoin('ci.eventAttendee', 'a')
->leftJoin('a.eventAttendeeAddresses', 'ea')
->where($qb->expr()->andX(
$qb->expr()->eq('ci.eventSession',
$qb->expr()->literal($eventSessionId))
)
);
然后我根据通过api enpoint输入的信息传递动态$ qb。这是我的逻辑。
if ($match_level === 3){
list($first, $last) = explode(' ', $filter);
$first = 'a.firstName='. $first;
$last = 'a.lastName='. $last;
$expr->add($qb->expr()->concat($first, $qb->expr()->concat($qb->expr()->literal(' '), $last)));
}
我正在尝试创建一个查询,以允许端点通过名字和姓氏进行搜索。
答案 0 :(得分:0)
我通过这样做解决了。
if ($match_level === 3){
list($first, $last) = explode(' ', $filter);
$expr2->add($qb->expr()->andX($qb->expr()->eq('a.lastName', $qb->expr()->literal($last))));
$expr2->add($qb->expr()->andX($qb->expr()->eq('a.firstName',$qb->expr()->literal($first))));
}