如何获取外键而不是对象的值?

时间:2012-08-09 22:42:53

标签: perl dbix-class

我有两张桌子booklanguage; book belongs_to language有一个language列,说明它所使用的语言。language表只是language列。

我想做$book->language并获取语言字符串,而不从language表中获取语言。有没有办法做到这一点?

我怀疑这是关于回归的背景。我应该做一些过载,比如说:

use overload "language_string" => sub {
  my $self = shift;
  return $self->language;
}, fallback => 1;

但在那种情况下,我当然还在使用这种语言。

1 个答案:

答案 0 :(得分:6)

一种解决方案是使用与列不同的名称来定义关系,例如rel_$colname。 然后,DBIC生成的访问器方法对于列值和相关对象将是不同的。

如果您不想更改关系名称,可以随时使用$row->get_column('colname');

访问列值