我无法找到关于我在实体内部看到的“ORM表达式”的良好文档,所以我有点混淆。
我在用户实体中有这个:
/**
* @var ArrayCollection $administered
*
* @ORM\ManyToMany(targetEntity="Done\PunctisBundle\Entity\Brand", inversedBy="admins")
* @ORM\JoinTable(name="user_brand_administered")
**/
protected $administered;
这很好用,但是我需要更简单的东西,我需要var administrated 来获取 Brand 实体的所有值,而不是加入表user_brand_administrated它在下面的代码上做了。我怎么能这样做?
答案 0 :(得分:0)
为什么你想要这里的所有价值?
使用自定义EntityRepository,您可以使用方法来检索您想要的对象。
例如。
class UserRepository extends EntityRepository
{
public function findOneWithRelation($id)
{
$qb = $this->createQueryBuilder('u')
->select('u, b')
->leftJoin('u.administered, b')
->where('u.id = :id')
->setParameter('id', $id)
->getQuery()
->getResult();
}
}
将此存储库附加到您的用户实体:
/**
* @Entity(repositoryClass = "Path\To\UserRepository")
*/
class User
{
// ...
}
像这样,您可以检索所有品牌的用户。
希望它有用。
最好的关注。