제품이라고하는 엔티티가 있습니다. 제품에 ProductPicture 배열이 있습니다.테이블의 첫 번째 행에서 내부 조인을 수행합니다.
/**
* @ORM\OneToMany(targetEntity="Site\MainBundle\Entity\ProductPicture", mappedBy="product", cascade={"persist","remove"})
*/
protected $pictures;
그래서 나는 다음과 같은 쿼리 교리 DQL 쿼리가 :
$query = $em->createQueryBuilder()
->select('p.id, p.name, pictures.name')
->from("SiteMainBundle:Product", 'p')
->innerJoin('p.category', 'c')
->innerJoin('p.shop', 'shop')
->innerJoin('p.pictures', 'pictures');
이것이하는 일은 그 내부 사진의 모든 단일 행으로 참여한다는 것을입니다 (때문에 다음은 코드의 조각이다 각 제품은) 마뉘 사진을 가지고 있으며, 나는이 밖으로 JSON을 생성하므로 경우,이 같은 반환합니다
[{"id":346,"name":"11b650390dde2f3132875c2f265490040ce00d93.jpg"},
{"id":346,"name":"98c03f5e7896cf22143f5303f8fa54e7cb6a42d5.jpg"},
{"id":346,"name":"776c975ed78091fbdaaf0fceac90115258b822a0.jpg"},
{"id":346,"name":"b02f44ff728d0ca7b498038bfd331a364eb712a3.jpg"},
{"id":346,"name":"eccc317200ba6b3c01fd1815bd29ebac0b96f16a.jpg"}]
난 단지이가 합류 내부가되고 싶었을 이 같은 배열의 ProductPicture
제 모든 등이 생성 무언가 :
[{"id":346,"name":"11b650390dde2f3132875c2f265490040ce00d93.jpg"}];
아래 손은 내가 첫 번째 일 필요는 ProductPicture
의 모든 필요가 없다는 것입니다.
내가 배열의 첫 번째 ProductPicture
를 얻는 제품 엔티티에 getCover
라는 방법이 그냥 그림의 목적 :
/**
* @Accessor(getter="getCover")
*/
private $cover;
public function getCover()
{
if($this->pictures->count() > 0) {
return $this->pictures[0];
}
return new ProductPicture();
}
이 나는 내부가 수행 할 가입 정확히 원하는 것입니다.