gpt4 book ai didi

perl - 我如何在 Class::DBI 中使用 add_to?

转载 作者:行者123 更新时间:2023-12-01 04:58:54 25 4
gpt4 key购买 nike

我正在尝试将 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,它指向 CompanyCompanyId

关于perl - 我如何在 Class::DBI 中使用 add_to?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/494803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com