6

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

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

我怀疑这是关于返回上下文。我应该做某种超载,说:

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

但在那种情况下,我当然还在学习语言。

4

1 回答 1

6

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

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

于 2012-08-10T10:41:49.160 回答