【发布时间】:2014-05-23 10:50:07
【问题描述】:
我需要从我的收藏 Doctrine 中获取一个特定的对象。
目前,我有两个实体(具有多对多双向关系):
- 类别
- 用户
在我的用户实体中,我有一个板属性定义为 ArrayCollection:
/**
* @ORM\ManyToMany(targetEntity="\MyNamespace\WebsiteBundle\Entity\Category", inversedBy="users", cascade={"remove"})
* @ORM\JoinTable(name="user_categories")
*/
private $categories;
public function __construct()
{
parent::__construct();
$this->categories = new ArrayCollection();
}
/**
* get Categories
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getCategories()
{
return $this->categories;
}
在我的类别实体中,我有这个:
/**
* @ORM\ManyToMany(targetEntity="\MyNamespace\UserBundle\Entity\User", mappedBy="categories")
* @Exclude
*/
private $users;
public function __construct()
{
$this->users = new ArrayCollection();
}
/**
* get Users
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getUsers()
{
return $this->users;
}
当我需要获取数据库中的所有类别时,我会这样处理:
$user = $this->getUser();
$categories = $user->getCategories()
\Doctrine\Common\Util\Debug::dump($categories) // OK: Result is the categories belonging to the user
但现在我只想检索类别名称为“运动”的用户的类别。 我该怎么做呢?我必须使用 QueryBuilder 并且不直接通过我的对象?
最后,我只想为我的 $user->getBoards() 添加一个条件
感谢您的帮助!
【问题讨论】:
标签: php symfony object doctrine-orm entity-relationship