无法弄清楚如何制作我需要的正确存储库方法

问题描述 投票:0回答:1

我正在尝试通过实体产品和实体商店之间的连接来创建QueryBuilder。我想展示所有与OneStore相关的产品。他们有多对多的关系。我不知道如何获取ID。请哭。预先感谢!

这是我的product_store表的屏幕截图:

https://imgur.com/a/wUZMEEn

因此,如果我足够清楚,我的英语合法身份,您会理解,我只想显示与一个商店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();
    }

symfony doctrine repository relation
1个回答
0
投票

这样的事情会做。

    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表联接在一起。

© www.soinside.com 2019 - 2024. All rights reserved.