Php 条令:我如何让多对多关系的所有参与者参与

Php 条令:我如何让多对多关系的所有参与者参与,php,doctrine,Php,Doctrine,我有3张桌子:[订单,订单到货物,货物] 我想让多对多关系的所有参与者,按照顺序,都能做这样的事情: $Order = Doctrine::getTable('Order')->findOneById( 1 ); $Order ->loadReleated('Goods'); foreach( $Order->Goods as $product){...} 但这是行不通的。尝试了一切之后,我绝望了。你能给我一些帮助吗 附加 要获取嵌套值,需要执行以下操作: $thi

我有3张桌子:[订单,订单到货物,货物]

我想让多对多关系的所有参与者,按照顺序,都能做这样的事情:

$Order = Doctrine::getTable('Order')->findOneById( 1 );
$Order ->loadReleated('Goods');

foreach( $Order->Goods as $product){...}
但这是行不通的。尝试了一切之后,我绝望了。你能给我一些帮助吗

附加 要获取嵌套值,需要执行以下操作:

    $this->orderObject->loadReference('StoreOrderToItem');
    foreach($this->orderObject->StoreOrderToItem as $OrderToItem)
    {
        $OrderToItem->loadReference('StoreItem');
    }
和对数据库的少量查询,以获得完整的对象:

SELECT s.order_id AS s__order_id, s.goods_id AS s__goods_id, s.count AS s__count, s.price AS s__price FROM store_order_to_item s WHERE (s.order_id IN (?))

SELECT s.id AS s__id, s.section_id AS s__section_id, s.payment_strategy_id AS s__payment_strategy_id, s.name AS s__name, s.title AS s__title, s.description AS s__description, s.price AS s__price, s.creation_date AS s__creation_date, s.status AS s__status, s.sort AS s__sort FROM store_item s WHERE (s.id = ?)

SELECT s.id AS s__id, s.section_id AS s__section_id, s.payment_strategy_id AS s__payment_strategy_id, s.name AS s__name, s.title AS s__title, s.description AS s__description, s.price AS s__price, s.creation_date AS s__creation_date, s.status AS s__status, s.sort AS s__sort FROM store_item s WHERE (s.id = ?)
如果数据库中不仅有一行或两行,还有数千行呢。有必要将所有查询与左联接操作数组合在一起。如果所有关系都得到纠正,怎么能做到这一点? 条令文件未能向我披露这个问题。我希望你能帮助我

PS:对不起我的英语,我写这个超过30分钟=

我找到了解决方案:

    $q = $this->createQuery('dctrn_findProduct')
            ->from('JV_Model_StoreOrder o')
            ->leftJoin('o.StoreOrderToItem oi WITH oi.order_id = o.id')
            ->leftJoin('oi.StoreItem i WITH i.id = oi.goods_id')
            ->addWhere('o.id = ?', $order_id);

    $r = $q->execute(array(), Doctrine_Core::HYDRATE_ARRAY);
他不充当mysql,使用的不是简单的SQL查询