Symfony多对多关系持久收集

时间:2015-10-27 14:57:37

标签: symfony

多对多的关系:

我有两张桌子加入了多对多的关系。

帐户组实体:

/**
 * @var ArrayCollection
 * @ORM\ManyToMany(targetEntity="Account", inversedBy="accountGroups", cascade={"persist"})
 * @ORM\JoinTable(
 *      joinColumns={@ORM\JoinColumn()},
 *      inverseJoinColumns={@ORM\JoinColumn(name="id", referencedColumnName="id")})
 **/
protected $accounts;

帐户实体:

/**
 * @var ArrayCollection
 * @ORM\ManyToMany(targetEntity="AccountGroup", mappedBy="accounts", cascade={"persist"})
 * 
 */
protected $accountGroups;

我通过使用find()和findAll()尝试了帐户组实体的多对多关系。我没有得到任何与帐户相关的数据,即使它有。     我正在使用默认转储获得持久化类集合。     是否可能是关系问题?

用于获取的代码:

$ entityManager-> getRepository( 'AccountGroup') - >发现(1);

2 个答案:

答案 0 :(得分:0)

感谢@Cerad和@Stiven Llupa评论。     我正在获取关系数据。必须进行迭代才能获得个人数据。

$accountEntity = $entityManager->getRepository('Account')->find(1);
foreach($accountEntity->getAccountGroups() as $accountGroups) {
{
    echo $accountGroups->getId();
}

答案 1 :(得分:-1)

您使用了错误的代码。与

$entityManager->getRepository('AccountGroup')->find(1);

您将在数据库中找到ID为1的行。您需要这样做:

$entityManager->getRepository('AccountGroup')->findBy(['group' => $group]);

包含所需组的$group变量。