1. ホーム
  2. php

[解決済み] FindByメソッドを比較条件付きで使用する方法

2023-04-30 22:39:52

質問

私は(正確な基準だけでなく)比較基準を使用して、"マジックファインダー" findBy メソッドを使用する必要があります。言い換えれば、私はこのようなことをする必要があります。

$result = $purchases_repository->findBy(array("prize" => ">200"));

で、賞金が200以上の買い物をすべて取得するようにしました。

どのように解決するのですか?

これは Expr()クラス - 私も数日前にこれが必要になったのですが、正確な構文と使い方を見つけるのに時間がかかりました。

/**
 * fetches Products that are more expansive than the given price
 * 
 * @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();
}