2015-06-28 40 views
0

我有2個實體:「請求」和「合作伙伴」 請求和合作夥伴之間有1to1關係,因此請求表 中有一個partners_id字段我想要顯示一個合作伙伴名單,但我需要一個數值從「價格」字段中請求表Symfony2樹枝打印2個非關聯表的查詢

在我的控制器,我有這個疑問:

$listPartners = $em 
    ->getRepository('OandPboBundle:Partners') 
    ->createQueryBuilder('p') 
    ->select('p') 
    ->leftJoin('OandPboBundle:Requests', 'r', 'WITH', 'r.partners = p.id')   
    ->where('p.date LIKE :date AND p.active = :active') 
      ->setParameter('date', '%'.$year.'-'.$month.'%') 
      ->setParameter('active', 1) 

    ->orderBy('p.date', 'DESC') 
    ->addOrderBy('p.id', 'DESC') 
    ->getQuery() 
    ->getResult(); 

而在我的嫩枝文件我有

{% for partners in listPartners %} 
      <tr> 
       <td>{{ partners.id }}</td> 
       <td>{{ partners.price }}</td> 
      </tr> 
{% endfor %} 

當然還有是一個錯誤,因爲他們說那裏是「合作伙伴」無「價」字段(當然我希望把它從「請求」)

有沒有辦法做到這一點?

編輯 我後我的2個實體 實體 「請求」

class Requests 

{ /** * @ORM \ OneToOne(targetEntity = 「OandP \ boBundle \實體\合作伙伴」,級聯= { 「persist」}) * @ORM \ JoinColumn(nullable = false) */ private $ partners;

/** 
* @var integer 
* 
* @ORM\Column(name="id", type="integer") 
* @ORM\Id 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
private $id; 

/** 
* @var string 
* 
* @ORM\Column(name="price", type="integer") 
*/ 
private $price; 

我的實體 「合作伙伴」

/** 

*合作伙伴 * * @ORM \表(NAME = 「合作伙伴」) * @ORM \實體(repositoryClass =「OandP \ boBundle \實體\ PartnersRepository「) */ 級合作伙伴 {

/** 
* @var integer 
* 
* @ORM\Column(name="id", type="integer") 
* @ORM\Id 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
private $id; 

/** 
* @var string 
* 
* @ORM\Column(name="raisonsociale", type="string", length=255) 
*/ 
private $raisonsociale; 

/** 
* @var string 
* 
* @ORM\Column(name="firstname", type="string", length=255) 
*/ 
private $firstname; 

/** 
* @var string 
* 
* @ORM\Column(name="lastname", type="string", length=255) 
*/ 
private $lastname; 
+0

我認爲你需要在查詢中爲'Quotations'表添加一種'join'(也許是'cross join');)。 –

+1

我們不知道你的實體是怎樣的。當然你應該發佈他們,如果你想有人幫助你.. – xurshid29

+0

我已經添加了我的實體:) – sim100

回答

0

您CA如果存在單向關係則不會得到它。我可以建議是建立一個枝杈功能,通過Partners得到Requests對象,可能是這樣的:

{% for partners in listPartners %} 
    {% set requests = requests_by_partners(partners) {# this is a custom twig function, you can create it by extending the Twig, http://symfony.com/doc/current/cookbook/templating/twig_extension.html #} %} 
    <tr> 
     <td>{{ partners.id }}</td> 
     <td>{{ requests.price }}</td> 
    </tr> 
{% endfor %} 

或宣佈你爲雙向關係,這允許您通過合作伙伴獲得的請求:

{% for partners in listPartners %} 
    <tr> 
     <td>{{ partners.id }}</td> 
     <td>{{ partners.requests.price }}</td> 
    </tr> 
{% endfor %} 
0

定義字段$請求在合作伙伴的實體

/** 
* @ORM\OneToOne(targetEntity="OandP\boBundle\Entity\Requests", mappedBy="partners") 
*/ 
private $requests; 

而在你的枝條,只需嘗試:

{% for partners in listPartners %} 
    <tr> 
     <td>{{ partners.id }}</td> 
     <td>{{ partners.requests.price }}</td> 
    </tr> 
{% endfor %}