在我的UserRepository
内部,我想创建自定义查询,例如我在不使用MongoDB时可以使用$dm->createQuery('some query')
创建的查询。
我该怎么做?我看到$this->createQueryBuilder()
方法存在,但$this->createQuery()
没有。
我也试过这个,因为它有意义,但没有用:
$this->createQueryBuilder('u')
->where(array('$or' => array(
array('u.username' => $username),
array('u.email' => $username)
)))
// ...
它表示$或是无效的运营商。
答案 0 :(得分:2)
在此处找到:Doctrine2 Mongodb adding more $or operator
/**
* Adds an "or" expression to the current query.
*
* You can create the expression using the expr() method:
*
* $qb = $this->createQueryBuilder('User');
* $qb
* ->addOr($qb->expr()->field('first_name')->equals('Kris'))
* ->addOr($qb->expr()->field('first_name')->equals('Chris'));
*
* @param array|QueryBuilder $expression
* @return Builder
*/
/**
* Adds an "and" expression to the current query.
*
* You can create the expression using the expr() method:
*
* $qb = $this->createQueryBuilder('User');
* $qb
* ->addAnd($qb->expr()->field('first_name')->equals('Kris'))
* ->addAnd($qb->expr()->field('first_name')->equals('Chris'));
*
* @param array|QueryBuilder $expression
* @return Query
*/