共有3个表格:
catalog
product
product2catalog
表product2catalog
包含以下字段:
catalog_id
product_id
如何在目录中获取商品?如何重建连接才能这样做:
$CatalogTable = CatalogTable::getInstance();
$Catalog = $CatalogTable->find( $id );
var_dump( $Catalog->product );
你能帮帮我吗?
答案 0 :(得分:1)
如[{3}}所述,Doctrine中很多关系都很容易。
像这样建立你的关系:(在目录表的setUp()函数中)
$this->hasMany('Product as Products',
array('local' => 'catalog_id',
'foreign' => 'product_id',
'refClass' => 'product2catalog'
));
同样,在YAML:
Catalog:
# ...
relations:
# ...
Products:
class: Product
local: catalog_id
foreign: product_id
refClass: product2catalog
您还必须对产品类执行相同的操作 - 完全相同的语法,只需反转本地/外部引用。
答案 1 :(得分:1)
要查询多对多关系,您可以执行以下操作:
$q = Doctrine_Query::create()
->from('Catalogue c')
->leftJoin('c.Product p')
->where('c.id = ?', $id);
$c = $q->fetchArray();