【发布时间】:2011-06-27 01:07:02
【问题描述】:
在我描述细节之前,问题是,我运行 $c->model('ResultName')->search({k=>v}) 并且当我循环它的 has_many 关系的结果时,有数据库中只有一个,但它永远循环。我试过谷歌搜索,发现一个人解决了这个问题,但对我的解释太简短了。他的帖子是here。
基本上我有3张桌子
订单、订单项和项目。物品是可用的。订单是一个人想要的物品的集合。所以我可以用类似的东西把它们绑在一起
从订单中选择 oi.order_item_id,oi.order_id,i.item_id as o 内部连接 order_items as oi on oi.order_id = o.order_id 内部连接项目 as i on i.item_id = oi.item_id where blah blah blah。 ...
我运行了 DBIx::Class::Schema::Loader 并得到了看似正确的关系
MyApp::Schema::Result::Order->has_many('order_items'...)
MyApp::Schema::Result::Items->has_many('order_items'...)
MyApp::Schema::Result::OrderItems->belongs_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);
}
}
在内循环上无限循环
【问题讨论】:
标签: perl catalyst dbix-class