【发布时间】:2015-11-24 16:39:53
【问题描述】:
用户信息:
namespace Module\Entity;
use Doctrine\ORM\Mapping as ORM;
use Zend\Stdlib\Hydrator;
/**
* Info
*
* @ORM\Table(name="user_info")
* @ORM\Entity
* @ORM\HasLifecycleCallbacks
* @ORM\Entity(repositoryClass="Module\Entity\InfoRepository")
*/
class Info
{
/**
* @var ArrayCollection $champions
*
* @ORM\ManyToMany(targetEntity="Module\Entity\Champion", inversedBy="infos")
*/
private $champions;
}
冠军:
namespace Module\Entity;
use Doctrine\ORM\Mapping as ORM;
use Zend\Stdlib\Hydrator;
/**
* Champion
*
* @ORM\Table(name="champion")
* @ORM\Entity
* @ORM\HasLifecycleCallbacks
* @ORM\Entity(repositoryClass="Module\Entity\ChampionRepository")
*/
class Champion
{
/**
* @var ArrayCollection $infos
*
* @ORM\ManyToMany(targetEntity="Module\Entity\Info", mappedBy="champions")
*/
private $infos;
}
此代码有效并在数据库中创建了一个表info_champion。
我只想使用教义QueryBuilder 选择包含与某个特定英雄的关系的信息,例如以下 SQL 查询:
SELECT i.* FROM `user_info` AS i
LEFT JOIN info_champion ic ON ic.info_id = i.id
WHERE ic.champion_id = 2;
【问题讨论】:
标签: php doctrine-orm zend-framework2 many-to-many query-builder