2012-09-28 4 views
2

DQL에서 개체 또는 ID를 사용할지 여부를 묻는 질문에 인터넷에서 검색했지만 doctrine 설명서에서 가장 좋은 방법을 찾을 수 없습니다. 그래서 문제가 이런 것 같습니다 카테고리 개체가 있다고 상상해보십시오 더 나은 성능을 위해 제품 저장소에 DQL을 만들고 $ 카테고리 개체를 전달하기 위해 가격이 10 미만인 제품을 얻고 싶습니다 내 친구가 우리에게 말했습니다. $ category-> getId()를 전달해야하며 다음과 같은 ID로 검색하십시오.doctrine 2에서 개체 대 식별자 사용 DQL

public function findCheapProducts($categoryId){ 
return $this->createQueryBuilder('p') 
      ->where('p.category = :categoryId') 
      ->andWhere('p.price < :price') 
      ->setParameters(array(
       'categoryId' => $categoryId, 
       'price'  => 10 
      )); 
} 

내가 무슨 말을하는 것은 내가 오류 또는 일들이 정말 목적은 식별자

에 의해 조건을 넣을 수있는 더 좋은 방법 인보고 여기 나에게 문제가되지 않도록 여기에 코드를 작성이

public function findCheapProducts(Category $category){ 
return $this->createQueryBuilder('p') 
      ->where('p.category = :categoryId') 
      ->andWhere('p.price < :price') 
      ->setParameters(array(
       'categoryId' => $category, 
       'price'  => 10 
      )); 
} 

같다

+0

메서드 매개 변수를 입력하지 않고 이름을'$ category'로 지정하면 ID 또는 개체가 작동합니다 – AdrienBrault

답변

1

사용자 입력에 따라 두 가지를 혼합합니다. 객체를 이미 가지고있을 때, 폼 제출과 같은 ID 만 가지고 있다면 모델을 쿼리 작성기로 전달하기 위해 모델을로드하는 것은 말도 안되기 때문에 ID를 전달합니다. (잘못된 ID를 피하기 위해이 경우 적절한 폼 유효성 검사가 필요합니다)

관련 문제