2015-01-27 2 views
0

아래 doctrine docs 예제를 사용하여 제품을 쿼리 할 때 모든 기능을 반환하고 싶습니다.관계가 존재하는 경우 OneToMany 'Child'가 'Parent'개체를 반환합니다.

그래서 효과적으로

selecting all products where feature.product_id = product.id 그러나 가능하면이 교리의 객체 지향 방법을하고 싶습니다. 이 관계를 반대 방향으로 일치시키는 교리에 어떤 방법이 있습니까?

<?php 
use Doctrine\Common\Collections\ArrayCollection; 

/** @Entity **/ 
class Product 
{ 
    // ... 
    /** 
    * @OneToMany(targetEntity="Feature", mappedBy="product") 
    **/ 
    private $features; 
    // ... 

    public function __construct() { 
     $this->features = new ArrayCollection(); 
    } 
} 

/** @Entity **/ 
class Feature 
{ 
    // ... 
    /** 
    * @ManyToOne(targetEntity="Product", inversedBy="features") 
    * @JoinColumn(name="product_id", referencedColumnName="id") 
    **/ 
    private $product; 
    // ... 
} 

출처 : http://doctrine-orm.readthedocs.org/en/latest/reference/association-mapping.html#one-to-many-bidirectional

감사합니다, product.id = feature.product_id는 제품 테이블의 ID를 가정 한 결과를 반환한다이 경우에 제품을 선택

+0

내가 틀렸다면 정정하십시오. 그러나 이것은 대략 당신이해야 할 일입니다. ** 기능이 지정된 ** 제품을 검색하지만, ** 기능이없는 제품은 건너 뜁니다. 내가 맞습니까? –

+0

정확히 @JovanPerovic 지연된 응답으로 미안합니다 –

답변

0

가 기본 키 , 자동 증가. 기능을 모두 반환하지 않으시겠습니까? 여기에서 feature.product_id == (특정 product.id)는 무엇입니까?

후자의 경우

, 당신은 손에서 $ productId에, 고유 한 정수를

$features = $em->getRepository('MyBundle:Feature') 
    ->findBy(
     array('product_id' => $productId) 
    ); 

.

+0

안녕하세요, 특정 제품에 '크기'라는 예를 들어 기능이 연결되어있는 모든 기능을 원했습니다. –

+0

내 대답의 코드는 특정 제품에 연결된 모든 기능을 반환해야합니다. 제품 실체와 제품 ID가 있어야합니다. 이것이 원하는 것이 아니라면 질문을 수정하는 것이 좋습니다. – Bango

+0

Jovan의 코멘트에서 벗어나 "기능이 할당 된 제품 만 검색하지만 기능이없는 제품은 건너 뜁니다" – Bango

관련 문제