10

Option 1同様のOption 2結果が得られるようです。通常の方法execute statementではなく、を使用することに特に利点はありますか?getResult()

オプション1:

public function getEventsByOrganiser(EventInterface $event, $username)
{
    $qb = $this->repository->createQueryBuilder('e')
        ->select(array('e', 'u'))
        ->leftJoin('e.user', 'u')
        ->andWhere('u.username = :username');

    return $qb->getQuery()->execute(array(
        'username' => $username
    ));
}

オプション 2:

public function getEventsByOrganiser(EventInterface $event, $username)
{
    $qb = $this->repository->createQueryBuilder('e')
        ->select(array('e', 'u'))
        ->leftJoin('e.user', 'u')
        ->andWhere('u.username = :username')
        ->setParameter('username', $username);

    return $qb->getQuery()->getResult();

}
4

1 に答える 1

15

基本的には、引数ハイドレーション モードとして設定できるgetResult()エイリアスです。例: isexecute(array())getResult(Query::HYDRATE_OBJECT)execute(array(), Query::HYDRTE_OBJECT)

唯一の違い: execute メソッドでは、クエリ パラメータを最初の引数として設定できるため、setParameter前にメソッドを呼び出す必要はありません...

于 2013-01-31T07:13:50.913 に答える