Muszę użyć metody findBy przy użyciu kryteriów porównawczych (nie tylko kryteriów dokładnych). Innymi słowy, muszę zrobić coś takiego:
$result = $zakupy_repository->findBy(array("cena" => ">200"));
aby uzyskać wszystkie zakupy, w których nagroda przekracza 200.
Macie jakis pomysl?
1 odpowiedź
To jest przykład użycia klasy Expr () - potrzebowałem tego też kilka dni temu i zajęło mi trochę czasu, aby dowiedzieć się, jaka jest dokładna składnia i sposób użycia:
/**
* pobiera produkty, które są droższe niż podana cena
*
* @param int $price
* @return array
*/
public function findProductsExpensiveThan($price)
{
$em = $this->getEntityManager();
$qb = $em->createQueryBuilder();
$q = $qb->select(array('p'))
->from('YourProductBundle:Product', 'p')
->where(
$qb->expr()->gt('p.price', $price)
)
->orderBy('p.price', 'DESC')
->getQuery();
return $q->getResult();
}