我有两张桌子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;
但在那种情况下,我当然还在使用这种语言。
答案 0 :(得分:6)
一种解决方案是使用与列不同的名称来定义关系,例如rel_$colname
。
然后,DBIC生成的访问器方法对于列值和相关对象将是不同的。
如果您不想更改关系名称,可以随时使用$row->get_column('colname');