我正在尝试通过实体产品和实体商店之间的连接来创建QueryBuilder。我想展示所有与OneStore相关的产品。他们有多对多的关系。我不知道如何获取ID。请哭。预先感谢!
这是我的product_store表的屏幕截图:
因此,如果我足够清楚,我的英语合法身份,您会理解,我只想显示与一个商店ID相关的产品。
让我们举个例子。如果我在/ store / detail / {1}页面上,我想显示产品ID 1,3,6,8,10,13,因为它们与store.id = 1有关。
----------------------我的存储库功能----------------------- ------
public function getAllProductsFromOneStore()
{
$qb = $this->createQueryBuilder('store')
->select('store.product')
->join('store.product', 'sp')
->where('store.id = :sid')
->andWhere('sp.id = :spid')
->setParameters(['spid'=> $spid,'sid'=> $sid]);
return $qb
->getQuery()
->getResult();
}
这样的事情会做。
public function getProductsForStore($sid)
{
return $this->createQueryBuilder('s')
->join('s.product', 'p')
->addSelect('p')
->andWhere('s.id = :sid')
->orderBy('p.name', 'ASC')
->setParameter('sid', $sid);
->getQuery()
->getResult()
;
}
Doctor知道(如果您的关系有效,那么在ManyToMany关系的情况下,如何也可以通过联接将Store和Product表联接在一起。