교리 및 LIKE 쿼리
나는 교리에 대한 실체가 있습니다.
<?php
/**
* @Entity
* @Table(name="orders")
*/
class Orders {
/** @Id @Column(name="OID",type="integer") @GeneratedValue */
private $id;
/** @Column(name="Product",type="string")*/
private $product;
/** @Column(name="RegCode",type="string")*/
private $reg_code;
/** @Column(name="OrderEmail",type="string")*/
private $email;
}
다음과 같은 쿼리가 필요합니다.
select * from `orders` where `OrderEmail`='some@mail.com' and `Product` LIKE 'My Products%'
나는 다음과 같이 쿼리를 처리하려고 시도합니다.
$em->getRepository("Orders")->findByEmailAndProduct($uname,$product);
그러나 그것은 오류를 만듭니다. 왜? DQL없이이 쿼리를 수행 할 수 있습니까? 이 쿼리에 findBy 매직 메서드를 사용하고 싶습니다 **
매직 찾기 방법으로는 불가능합니다. 쿼리 작성기를 사용해보십시오 .
$result = $em->getRepository("Orders")->createQueryBuilder('o')
->where('o.OrderEmail = :email')
->andWhere('o.Product LIKE :product')
->setParameter('email', 'some@mail.com')
->setParameter('product', 'My Products%')
->getQuery()
->getResult();
createQuery
방법을 사용할 수 있습니다 (컨트롤러에서 직접) :
$query = $em->createQuery("SELECT o FROM AcmeCodeBundle:Orders o WHERE o.OrderMail = :ordermail and o.Product like :searchterm")
->setParameter('searchterm', '%'.$searchterm.'%')
->setParameter('ordermail', 'some@email.com');
번들 이름과 일치하도록 AcmeCodeBundle을 변경해야합니다.
또는 더 나은 방법-엔터티에 대한 저장소 클래스를 만들고 거기에 메서드를 만듭니다. 이렇게하면 다시 사용할 수 있습니다.
매직 메서드로는 불가능하지만 DQL ( Doctrine Query Language )을 사용하면 가능 합니다. 귀하의 예에서 Orders with Product 속성이라는 엔티티가 있다고 가정하고 계속 진행하여 다음을 수행하십시오.
$dql_query = $em->createQuery("
SELECT o FROM AcmeCodeBundle:Orders o
WHERE
o.OrderEmail = 'some@mail.com' AND
o.Product LIKE 'My Products%'
");
$orders = $dql_query->getResult();
Should do exactly what you need.
Actually you just need to tell doctrine who's your repository class, if you don't, doctrine uses default repo instead of yours.
@ORM\Entity(repositoryClass="Company\NameOfBundle\Repository\NameOfRepository")
you can also do it like that :
$ver = $em->getRepository('GedDocumentBundle:version')->search($val);
$tail = sizeof($ver);
ReferenceURL : https://stackoverflow.com/questions/8164682/doctrine-and-like-query
'IT TIP' 카테고리의 다른 글
오프 스크린 부분을 포함하여 UIScrollView의 스크린 샷 얻기 (0) | 2021.01.09 |
---|---|
SQL을 사용하지 않고 Magento 설정 스크립트의 ALTER TABLE (0) | 2021.01.09 |
WCF 웹 서비스 오류 : ASP.NET 호환성을 지원하지 않으므로 서비스를 활성화 할 수 없습니다. (0) | 2021.01.09 |
Scala에 경로 또는 파일이 있는지 확인하는 방법 (0) | 2021.01.09 |
Ruby는 이러한 파일을로드 할 수 없습니다-active_support / core_ext / object / blank (0) | 2021.01.09 |