2014-03-19 31 views
0

一個渴望負載我有兩個實體:Doctrine2許多人在Zend2

namespace Api\Payment\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* PaySystemField 
* 
* @ORM\Table(name="paysystem_field") 
* @ORM\Entity 
*/ 
class PaySystemField 
{ 
    /** 
    * @var integer 
    * 
    * @ORM\Column(name="id", type="integer", nullable=false) 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="IDENTITY") 
    */ 
    private $id; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="name", type="string", length=50, nullable=false) 
    */ 
    private $name; 

    ... 

} 

namespace Api\Payment\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* PaySystemFieldValue 
* 
* @ORM\Table(name="paysystem_field_value") 
* @ORM\Entity 
*/ 
class PaySystemFieldValue 
{ 
    ... 

    /** 
    * @var \Api\Payment\Entity\PaySystemField 
    * 
    * @ORM\ManyToOne(targetEntity="\Api\Payment\Entity\PaySystemField", fetch="EAGER") 
    * @ORM\JoinColumns({ 
    * @ORM\JoinColumn(name="paySystemFieldId", referencedColumnName="id") 
    * }) 
    */ 
    private $paySystemField; 

    ... 

} 

我DQL要求:

$fieldsValues = $this->objectManager 
      ->createQuery(' 
       SELECT psfv,psf FROM Api\Payment\Entity\PaySystemFieldValue psfv 
       JOIN Api\Payment\Entity\PaySystemField psf WITH (psfv.paySystemField=psf.id) 
       WHERE psfv.payment=:payment 
      ') 
      ->setParameter('payment', $this->payment) 
      ->setFetchMode('Api\Payment\Entity\PaySystemFieldValue', 'paySystemField', 'EAGER') 
      ->getResult(); 

該查詢返回PaySystemFieldValue與paySystemField關係已經初始化,但$ fieldsValues包含PaySystemFieldValue實體和PaySystemField。我怎麼能這樣做$ fieldsValues將只包含paySystemFieldValue實體與paySystemField關係初始化?

回答

1

嘗試與此查詢:

$fieldsValues = $this->objectManager->createQuery('SELECT psfv FROM Api\Payment\Entity\PaySystemFieldValue psfv WHERE psfv.payment=:payment')->setParameter('payment', $this->payment)->getResult(); 

$this->getServiceLocator()->get('doctrine.entitymanager.orm_default')->getRepository("Api\Payment\Entity\PaySystemFieldValue")->findBy(array('payment' => $this->payment)); 
+0

是的,那是很愚蠢的,我猜。我過於複雜的一切。謝謝 – Timur