Option 1
和Option 2
似乎给出了类似的结果。使用execute statement
而不是通常的getResult()
方法有什么特别的优势吗?
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
));
}
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();
}
答案 0 :(得分:9)
基本上getResult()
是execute(array())
的别名,您可以将其设置为参数水化模式,例如:getResult(Query::HYDRATE_OBJECT)
为execute(array(), Query::HYDRTE_OBJECT)
唯一区别:在执行方法中,您可以将查询参数设置为第一个参数,这样您就不必在...之前调用setParameter
方法。