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

Jon*_*Jon 6 perl dbix-class

我有两张桌子,book而且language; book belongs_to language通过language列来说明它所使用的语言.该language表只是language列.

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

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

use overload "language_string" => sub {
  my $self = shift;
  return $self->language;
}, fallback => 1;
Run Code Online (Sandbox Code Playgroud)

但在那种情况下,我当然还在掌握语言.

Ale*_*ier 6

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

如果您不想更改关系名称,则可以随时访问列值 $row->get_column('colname');