DBIX类 - 同一文件中的多个结果类

时间:2015-01-16 12:10:23

标签: perl dbix-class

我在MySQL数据库中使用DBIx :: Class。我有许多类似的结果类,它们是通过使用Helper :: Row :: SubClass从父模式进行子类化创建的。是否可以在同一个.pm文件中包含多个结果类?如果是,请建议如何。

2 个答案:

答案 0 :(得分:0)

始终可以将多个包放在同一个文件中。

package MyApp::Schema::Result::Foo;

# Stuff

package MyApp::Schema::Result::Bar;

# Other Stuff

1;

但它很少是一个好主意。

答案 1 :(得分:0)

如果文件中的结果类与类名称或具有多个结果类的文件不匹配,则必须使用register_class手动注册结果类。因此,在Schema类中,添加:

__PACKAGE__->register_class(Foo => 'MyApp::Schema::Result::Foo');
__PACKAGE__->register_class(Bar => 'MyApp::Schema::Result::Bar');

还要确保包含多个结果集类的文件位于load_namespcaesload_classes搜索的任何目录之外,并且手动use文件。