我按照Arbitrary SQL through a custom ResultSource中的说明操作时出现问题,因为它给我的错误为Can't locate object method "result_source_instance"
幸运的是,我在perlmonk answer找到了解决方案。确实如此:
package Dir::Dir::ComplexQuery;
use strict;
use warnings;
use base 'DBIx::Class::Core';
__PACKAGE__->table('dummy_table_name');
__PACKAGE__->add_columns(qw/col1 col2 col3/);
__PACKAGE__->result_source_instance->name(\q!(select complex query blah blah ... )! );
我通常可以...->resultset('ComplexQuery')->search();
我的问题如下:
table
是来自DBIx::Class::ResultSourceProxy::Table
的{{3}},对吗?我正在使用DBIx::Class::Schema::Loader
所以我自己从未创建过DBIx“类表”。__PACKAGE__->table('table_name')
将不触发创建此表(在这种情况下,它是一个视图)到实际的数据库,对吗?或者是否有创建视图的场景result_source_instance
?我做了搜索,但我找不到它 - 也许我没有找到正确的方式。