我有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 = ?)
如果数据库中不止一行或两行,那么就有几千行。有必要在一个查询中组合所有查询(与
LEFT JOIN
操作数)。如果所有的关系都正确的话,怎么做呢?
条令文件没有为我披露这个问题。我希望你能帮助我。
附言:对不起,我写这篇文章超过30分钟了。)