gpt4 book ai didi

database - DBIx::Class::Schema::Loader ResultSource 基类

转载 作者:搜寻专家 更新时间:2023-10-30 19:54:01 25 4
gpt4 key购买 nike

我正在使用 DBIx::Class::Schema::Loader 为我的数据库创建静态 ORM。我使用以下方法创建它并为 ResultSetResult 类指定基类,我可以将通用子类插入其中:

make_schema_at(
'MyApp::Schema',
{
debug => 1,
dump_directory => '/home/rob/projects/myapp/MyApp/lib',
overwrite_modifications => 1,
components=> ['EncodedColumn'],
use_namespaces => 1,
result_base_class => 'MyApp::Schema::ResultBase',
default_resultset_class => 'ResultSetBase'
},
[ 'DBI:mysql:database=mydb;host=localhost;port=3306','user', 'pass' ],
);

这很有效,但我也找不到如何为 ResultSource 创建基类。我想在那个类中插入一个子类,这样我就可以做类似的事情(伪代码):

$c->model('DB')->source->('Account')->getParentSource('Project');

ResultSourceBase.pm:

sub getParentSource {
my ($self,$parent) = @_;
foreach $relation in $self->relations
if ($relation->identifier eq $parent)
return $relation->source;

return $self;
}

谁能告诉我如何告诉加载器使用基 ResultSource 类,我可以在其中插入上述内容?

谢谢!

最佳答案

这是 DBIx::class 中了解最少且记录最少的领域之一。

我认为您可以通过创建一个组件并使用以下方式加载它来做到这一点:

__PACKAGE__->load_components(qw/ +My::Component /);

参见 http://search.cpan.org/dist/DBIx-Class/lib/DBIx/Class/Manual/Component.pod

关于database - DBIx::Class::Schema::Loader ResultSource 基类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5976656/

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