Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 信条:如何结合3表,以多对多的态度_Php_Doctrine - Fatal编程技术网

Php 信条:如何结合3表,以多对多的态度

Php 信条:如何结合3表,以多对多的态度,php,doctrine,Php,Doctrine,共有3个表格: catalog product product2catalog 表product2catalog由以下字段组成: catalog_id product_id 如何在目录中获取商品?如何重建连接以便能够执行此操作: $CatalogTable = CatalogTable::getInstance(); $Catalog = $CatalogTable->find( $id ); var_dump( $Catalog->product ); 你能帮我吗?如上文所述

共有3个表格:

catalog
product
product2catalog
product2catalog
由以下字段组成:

catalog_id
product_id
如何在目录中获取商品?如何重建连接以便能够执行此操作:

$CatalogTable = CatalogTable::getInstance();
$Catalog = $CatalogTable->find( $id );
var_dump( $Catalog->product );

你能帮我吗?

如上文所述,多对多关系在理论上很容易

按如下方式设置关系:(在catalog表的setUp()函数中)

同样,在YAML中:

Catalog:
# ...
  relations:
   # ...
    Products:
      class: Product
      local: catalog_id
      foreign: product_id
      refClass: product2catalog

您还必须对product类执行相同的操作-完全相同的语法,只需反转本地/外部引用即可

要查询多对多关系,可以执行以下操作:

$q = Doctrine_Query::create()
    ->from('Catalogue c')
    ->leftJoin('c.Product p')
    ->where('c.id = ?', $id);

$c = $q->fetchArray();
$q = Doctrine_Query::create()
    ->from('Catalogue c')
    ->leftJoin('c.Product p')
    ->where('c.id = ?', $id);

$c = $q->fetchArray();