0

内部では、MongoDB を使用しないときにUserRepository作成できるようなカスタム クエリを作成したいと考えています。$dm->createQuery('some query')

これどうやってするの?$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 に答える