作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将 Class::DBI 与一个简单的父 -> 子关系一起使用:
Data::Company->table('Companies');
Data::Company->columns(All => qw/CompanyId Name Url/);
Data::Company->has_many(offers => 'Data::Offer'=>'CompanyId'); # =>'CompanyId'
和
Data::Offer->table('Offers');
Data::Offer->columns(All => qw/OfferId CompanyId MonthlyPrice/);
Data::Offer->has_a(company => 'Data::Company'=>'CompanyId');
我尝试添加一条新记录:
my $company = Data::Company->insert({ Name => 'Test', Url => 'http://url' });
my $offer = $company->add_to_offers({ MonthlyPrice => 100 });
但是我得到:
Can't locate object method "add_to_offers" via package "Data::Company"
我查看了古典音乐::CD 示例,但我无法弄清楚我做错了什么。
最佳答案
我同意 Manni 的观点,如果你的包声明在同一个文件中,那么你需要首先定义具有 has_a()
关系的类。否则,如果它们位于不同的源文件中,则文档说明:
Class::DBI should usually be able to do the right things, as long as all classes inherit Class::DBI before 'use'ing any other classes.
至于三参数形式,你做得很好。 has_many()
的第三个参数是外部类中的列,它是该类的外键。也就是说,Offer
有一个 CompanyId
,它指向 Company
的 CompanyId
。
关于perl - 我如何在 Class::DBI 中使用 add_to?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/494803/
我正在尝试将 Class::DBI 与一个简单的父 -> 子关系一起使用: Data::Company->table('Companies'); Data::Company->columns(All
我是一名优秀的程序员,十分优秀!