多对多的关系:
我有两张桌子加入了多对多的关系。
帐户组实体:
/**
* @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);
答案 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
变量。