2012-08-09 13 views
6

私はbooklanguageという2つのテーブルを持っています。 bookbelongs_tolanguagelanguageの表記は、どの言語で表示されているかを示します。languageの表は、languageの列です。オブジェクトではなく外部キーの値を取得するにはどうすればよいですか?

languageテーブルから言語を取得せずに、$book->languageとし、言語文字列を取得します。それを行う方法はありますか?

私はそれが返品の文脈だと思っています。何らかの過負荷を行うべきか:

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

しかし、私はもちろん、まだ言語を取得しています。

答えて

6

解決策の1つは、列とは異なる名前の関係を定義することです。 rel_$colname。 DBICによって生成されたアクセサー・メソッドは、列の値と関連するオブジェクトに対して異なります。

あなたは常に$row->get_column('colname');

+1

おかげで列の値にアクセスすることができますあなたの関係の名前を変更したくない場合は、get_columnは私がのために狩りをされたまさにでした! – Jon

関連する問題