0

在我的内部,我UserRepository想创建自定义查询,就像我$dm->createQuery('some query')在不使用 MongoDB 时可以创建的查询一样。

我怎样才能做到这一点?我看到该$this->createQueryBuilder()方法存在,但$this->createQuery()不存在。

我也试过这个,因为它是有道理的,但没有奏效:

$this->createQueryBuilder('u')
    ->where(array('$or' => array(
        array('u.username' => $username),
        array('u.email' => $username)
    )))
    // ...

它说 $or 是一个无效的运算符。

4

1 回答 1

2

在这里找到它:Doctrine2 Mongodb 添加更多 $or 运算符

/**
 * 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
 */
于 2012-10-04T04:37:53.693 回答