【发布时间】:2018-06-20 12:35:58
【问题描述】:
在我们的在线商店中,我们销售工业计算机系统的备件。因此,我们有 2 个主要类别:备件和计算机系统。用户可以通过备件类别或通过计算机系统搜索所需的备件。如果用户在主页上选择了他的计算机系统,他应该会得到一个与他的计算机系统匹配的备件类别列表。
因此我需要查询所有备件类别并按所有文章过滤它们,这些文章也在预选的计算机系统的类别中。否则用户可能会看到一个空类别。
我有 2 个学说实体:文章和类别 - 它们中的每一个都与另一个多对多相关:
类别实体
/**
* @ORM\Table(name="categories")
* @ORM\Entity(repositoryClass="Repository")
*/
class Category extends ModelEntity
{
/**
* @var ArrayCollection
*
* @ORM\ManyToMany(targetEntity="Models\Article\Article")
* @ORM\JoinTable(name="articles_categories",
* joinColumns={
* @ORM\JoinColumn(name="categoryID", referencedColumnName="id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="articleID", referencedColumnName="id")
* }
* )
*/
private $articles;
文章实体:
/**
* @ORM\Entity(repositoryClass="Repository")
* @ORM\Table(name="articles")
*/
class Article extends ModelEntity
{
/**
* @var ArrayCollection
*
* @ORM\ManyToMany(targetEntity="Models\Category\Category")
* @ORM\JoinTable(name="articles_categories",
* joinColumns={
* @ORM\JoinColumn(name="articleID", referencedColumnName="id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="categoryID", referencedColumnName="id")
* }
* )
*/
protected $categories;
我正在尝试使用 2 个类别的文章查询所有类别。例如:获取所有类别,在“this”类别中有文章,但仅在相同文章也在“that”类别中。
不幸的是,我不知道该怎么做。谁能帮帮我?
【问题讨论】:
-
那么在任何 2 个类别中,还是在您选择的 2 个类别中?
-
在 2 个选定的类别中 - 例如:仅获取本身有文章的类别 AND 类别 2。
标签: php doctrine-orm orm