PHP-Doctrine2:Items-Shops-ItemsAtShops-如何方便地使用Doctrine2实现?

PHP-Doctrine2:Items-Shops-ItemsAtShops-如何方便地使用Doctrine2实现?,php,orm,doctrine,entity-relationship,Php,Orm,Doctrine,Entity Relationship,不知何故,我不知道如何实现以下关系 使用原则2语法: 我有商品和商店。每种商品都有不同的价格和价格 每个商店的数量。所以,我有物品表,商店表和 这是一张桌子。我如何在教义中反映最后一个 我想我需要创建ItemsAtShops实体,ManyToOne-> 物品和多通->商店,对吗?但在这种情况下。。。我该怎么办 在特定的商店方便地取一份物品清单,并附上 给定商店的价格和数量?所以,所有这些都可以 方便地迭代 我需要呈现一个项目及其价格和价格列表页面 特定商店的数量。有一个用于显示项目的模板 那里(

不知何故,我不知道如何实现以下关系 使用原则2语法:

我有商品和商店。每种商品都有不同的价格和价格 每个商店的数量。所以,我有物品表,商店表和 这是一张桌子。我如何在教义中反映最后一个

我想我需要创建ItemsAtShops实体,ManyToOne-> 物品和多通->商店,对吗?但在这种情况下。。。我该怎么办 在特定的商店方便地取一份物品清单,并附上 给定商店的价格和数量?所以,所有这些都可以 方便地迭代

我需要呈现一个项目及其价格和价格列表页面 特定商店的数量。有一个用于显示项目的模板 那里(包括所有的子属性-价格等)。因此,将一个对象传递给
该模板并对其及其子对象(如果有)进行迭代

我也在理论上与这种情况作斗争。Rails用它们的
has\u many:through=>
关系宠坏了我,这使得这类事情变得微不足道

您是正确的,您确实需要三个实体:商店、项目、项目使用双多通关系的商店

我假设ItemsAtShop看起来像:

class ItemsAtShop 
{        
   private $shop;
   private $items;
   private $quantity;
}
就查询而言,您需要改变连接:

$queryBulder->select('ias')
            ->from(ItemsAtShop, 'ias')
            ->leftJoin('ias.Item', 'i')
            ->leftJoin('ias.Shop', 's')
            ->where('s.id = :shop_id')
            ->andWhere('i.price <= :my_price')
            ->orderBy('i.price', 'DESC');
$queryBulder->select('ias')
->来自(ItemsAtShop,“ias”)
->leftJoin('ias.Item','i')
->leftJoin('ias.Shop','s')
->其中('s.id=:shop_id')
->和where('i.price