我在MySQL数据库中使用DBIx :: Class。我有许多类似的结果类,它们是通过使用Helper :: Row :: SubClass从父模式进行子类化创建的。是否可以在同一个.pm文件中包含多个结果类?如果是,请建议如何。
答案 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_namespcaes
或load_classes
搜索的任何目录之外,并且手动use
文件。