Прежде чем описать детали, проблема в том, что я запускаю $ c-> model ('ResultName') -> search ({k => v}), и когда я зацикливаюсь на результатах его отношения has_many, естьтолько один в базе данных, но он зацикливается навсегда.Я попробовал поискать в Google и нашел одного человека, который решил проблему, но со слишком кратким объяснением для меня.Его пост был здесь .
В основном у меня есть 3 таблицы
Orders, OrderItems и Items.Предметы - это то, что доступно.Заказы - это коллекции предметов, которые хочет один человек.Таким образом, я могу связать их все вместе с помощью чего-то вроде
select oi.order_item_id, oi.order_id, i.item_id из ордеров как o внутреннее объединениена i.item_id = oi.item_id, где бла-бла-бла ....
Я запустил DBIx :: Class :: Schema :: Loader и получил то, что казалось правильными отношениями
MyApp :: Schema :: Result :: Order-> has_many ('order_items' ...)
MyApp :: Schema :: Result :: Items-> has_many ('order_items' ...)
MyApp :: Schema :: Result :: OrderItems-> Proper_to ('items' ...)
в тесте я пытаюсь
my $orders = $schema->resultset('Order')->search({
'user_id'=>1
});
while(my $o = $orders->next) {
while(my $oi = $o->order_items->next) {
warn('order_item_id: '.$oi->order_item);
}
}
Он бесконечно зацикливается на внутренней петле