【发布时间】:2014-08-09 20:55:10
【问题描述】:
我是 Synfony2 和学说用法的初学者。我创建了如下两个实体:
对于最终用户实体(FOSUserBundle 的扩展):
/**
* EndUser
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Core\CustomerBundle\Entity\EndUserRepository")
*/
class EndUser extends BaseUser {
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\ManyToMany(targetEntity="Core\GeneralBundle\Entity\Discipline", mappedBy="endusers")
*/
private $discipline;
对于学科实体
class Discipline {
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToMany(targetEntity="Core\CustomerBundle\Entity\EndUser", inversedBy="discipline")
*/
private $endusers;
当我做"php app/console doctrine:schema:update -- force时,
EndUser、Discipline 和 discipline_enduser 表已创建。
当我通过 phpmyadmin 运行标准 SQL 请求时:
select t0.*
from
discipline t0,
discipline_enduser t2
where
t2.enduser_id = 1
and
t2.discipline_id = t0.id
我获得预期结果作为特定用户的纪律列表。
我关心的是如何使用带有 Symfony2 和 Doctrine 的实体来实现相同的功能
【问题讨论】:
标签: symfony many-to-many dql