2012-08-09 149 views
6

我有两个表,booklanguage; bookbelongs_tolanguage通过有一个language列说明它在哪种语言。language表只是language列。如何获取外键的值而不是对象的值?

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

我怀疑它是关于返回上下文。我应该做一些超负荷,说:

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

但在那种情况下,我当然,仍然得到的语言。

回答

6

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

如果你不想改变你的关系名称可以随时与$row->get_column('colname');

+1

感谢访问列值,get_column正是我打猎! – Jon 2012-08-10 15:15:38

相关问题