如何更改dbicdump创建的关系名称

时间:2013-09-03 18:10:02

标签: perl dbix-class

我有几张表:

  • 用户
  • user_address - >用fk给用户

我正在使用dbicdump生成我的dbic架构。 这在User.pm中创建了以下关系:

__PACKAGE__->has_many( 
  "user_addresses", 
  "World::DBIC::Result::UserAddress", 
  { "foreign.user_id" => "self.id" }, 
  { cascade_copy => 0, cascade_delete => 0 },
);

是否可以将关系名称更改为“地址”之类的内容?怎么样? (我的意思是在不改变代码之前#不要修改这个或任何上面的内容!)

如果没有,有没有办法为这段关系建立别名?

1 个答案:

答案 0 :(得分:3)

查看DBIx::Class::Schema::Loader::Base中的rel_name_map。在创建模式时,您应该可以执行以下操作:

my %args = ( 
    use_moose      => 1,
    use_namespaces => 1,
    rel_name_map   => { user_addresses => 'addresses' },
    # more args here...
);

make_schema_at( 'My::Schema', \%args, [ $connect_arg ... ] );

rel_name_map是重要的,但我为上下文添加了几行。