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關係初始化?
是的,那是很愚蠢的,我猜。我過於複雜的一切。謝謝 – Timur