クエリに渡すために既に準備した条件を含む配列があります。
配列:
('u.registered = 1','u.active = 0', 'u.gender = M')
クエリに渡すと、数値比較では機能しますが、M である varchar では機能しません。エラーは「性別」に表示され、セマンティック エラーであると表示されます。expr()->literal('M') を使用していないためだと思いますが、クエリが「既に構築されている」ため、これを行うことはできません..
もう一度コーディングする必要がないように別の方法はありますか?
これはコードです:
public function customR($data){
// var_dump($data);die();
$this->qb = $this->em->createQueryBuilder();
$andX = $this->qb->expr()->andX();
$this->qb->select('u')
->from('models\User','u');
foreach ($data as $value){
$andX->add($value);
}
$this->qb->add('where', $andX);
$query = $this->qb->getQuery();
// var_dump($query);die();
$obj = $query->getResult();
var_dump($obj);die();
if (!empty($obj)){
return $obj;
return false;
}
}