0
有沒有更好的方法來在Symfony 2中構建複雜的查詢? 我真正的疑問很複雜,但可以簡化爲「A和((B和C)或(B和D))」(我知道數學公式爲「A和B和(C或D)」,但我的真實查詢不能被簡化)。 我有使用和Where和orX的經驗,但我的問題是如何在'orX'中使用'和'/'expr() - >和X'。下面Symfony createQueryBuilder,如何在orx中使用'and'/'andx'
實施例(問題是在內部或X的僞碼份):
$qBuilder = $repo->createQueryBuilder('s')
->select('s.id')
->Where('s.FirstName = :fname')
->Where('s.LastName = :lname')
->andWhere($qBuilder->expr()->orX(
(':email is not empty AND s.Email = :email'),
(':phone is not empty AND s.HomePhone = :phone),
(':phone is not empty AND s.StudentMobile = :phone),
(':mphone is not empty AND s.HomePhone = :mphone),
(':mphone is not empty AND s.StudentMobile = :mphone)
))
->setParameter('fname', strtolower($fname))
->setParameter('lname', strtolower($lname))
->setParameter('email', $email)
->setParameter('phone', $phoneNumber)
->setParameter('mphone', $studentmobile);
另一個問題(我也開始一個新的問題)。爲什麼我總是從$ expr-> neq('s.studentEmail','')的值爲''或其他值時變爲true? –