У меня есть 3 таблицы: ["Order", "Order_to_goods", "Goods"]
Я хочу, чтобы все участники отношений "многие ко многим" по Order_ID могли сделать что-то вродечто:
$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
операндами).Как это сделать, если все отношения налажены?Доктрина Документация не смогла раскрыть эту проблему для меня.Я надеюсь, что вы могли бы помочь мне.
PS: Извините за мой английский, я пишу это выше 30 минут =))