2012-08-09 8 views
6

मुझे दो टेबल, book और language मिल गया है; bookbelongs_tolanguagelanguage कॉलम रखते हुए यह बताते हुए कि यह कौन सी भाषा है। language तालिका केवल language कॉलम है।ऑब्जेक्ट की बजाय मुझे विदेशी कुंजी का मूल्य कैसे प्राप्त होगा?

मैं $book->language करना चाहता हूं और language तालिका से भाषा लाने के बिना भाषा स्ट्रिंग प्राप्त करना चाहता हूं। क्या ऐसा करने के लिए कोई रास्ता है?

मुझे संदेह है कि यह वापसी संदर्भ के बारे में है। क्या मुझे कुछ प्रकार का अधिभार करना चाहिए, कहें:

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

लेकिन उस स्थिति में मैं निश्चित रूप से भाषा प्राप्त कर रहा हूं।

उत्तर

6

एक समाधान स्तंभों की तुलना में विभिन्न नामों के साथ संबंधों को परिभाषित करना है। rel_$colname। फिर डीबीआईसी द्वारा उत्पन्न एक्सेसर विधियां कॉलम मान और संबंधित ऑब्जेक्ट के लिए अलग होंगी।

आप आप हमेशा साथ $row->get_column('colname');

+1

धन्यवाद स्तंभ मान का उपयोग कर सकते अपने रिश्ते नाम बदलने के लिए नहीं करना चाहते हैं, get_column वास्तव में क्या मैं के लिए शिकार किया गया था! – Jon

संबंधित मुद्दे