where
. के बारे में jchamberlain की टिप्पणी पढ़ने के बाद मैं थोड़ा शोध करता हूं उनके जवाब के तहत और मैं इस निष्कर्ष पर पहुंचा कि
- आपको हमेशा
UpperCamelCase
. का उपयोग करना चाहिए स्टाइल जब आप प्रोपेल फ़ंक्शंस में कॉलम नाम टाइप करते हैं, भले ही यह कभी-कभी ठीक काम करता है यदि आप इस शैली का उपयोग नहीं करते हैं - समाधान प्रोपेल संस्करण पर निर्भर करता है
संभवतः प्रोपेल <=1.6.7 (या शायद कच्ची SQL क्वेरी ही एकमात्र समाधान है) के लिए कोई समाधान नहीं है, क्योंकि मैं कितनी भी कोशिश करूं, मैं हमेशा Cannot fetch ColumnMap for undefined column: ID_TABLE_B
प्रोपेल अपवाद।
प्रोपेल के लिए>=1.6.8 यह काम करेगा:
यदि आपको सरणी की आवश्यकता है परिणाम के रूप में उपनामित स्तंभों के साथ
TableAQuery::create()
->useTableBQuery('a')
// some filters methods
->endUse()
->useTableBQuery('b')
// some filters methods
->endUse()
->select(array('a.Value1', 'b.Value2')) // notice a.value_1 or b.value_2 won't work
->find();
अगर आपको वस्तुओं की आवश्यकता है अलियास्ड कॉलम से वर्चुअल कॉलम के साथ
TableAQuery::create()
->useTableBQuery('a')
// some filters methods
->endUse()
->useTableBQuery('b')
// some filters methods
->endUse()
->withColumn('a.Value1') // notice a.value_1 won't work
->withColumn('b.Value2') // notice b.value_2 won't work
->find();