2011-12-15 18 views
38

FOSUserBundle उपयोगकर्ता इकाई के पास उपयोगकर्ता नाम (और अन्य फ़ील्ड) के लिए दो गुण क्यों हैं?FOSUserBundle: उपयोगकर्ता नाम बनाम उपयोगकर्ता नाम कैनोनिकल

/** 
* @var string 
*/ 
protected $username; 

/** 
* @var string 
*/ 
protected $usernameCanonical; 

मैं डॉक्स पढ़ा है, स्रोत कोड ब्राउज़ किया है और जानकारी के लिए खोज करने की कोशिश की, और मैं बाहर नहीं मिल सकता है कारण है कि यह मौजूद है। ऐसा लगता है कि हमेशा एक ही मूल्यों को स्टोर करते हैं। मुझे यकीन है कि एक अच्छा कारण है, क्या कोई मुझे भर सकता है?

उत्तर

59

कैननिकल फ़ील्ड तुलना या खोज से पहले कम हो जाते हैं - यह सुनिश्चित करने के लिए कि एक ही मूल्य के साथ कोई डुप्लीकेट नहीं है लेकिन [email protected] और [email protected] जैसे विभिन्न मामलों के साथ।

+0

लेकिन यदि आपकी तालिका का संयोजन कुछ मामला असंवेदनशील मान (जैसे 'utf8_unicode_ci') पर सेट है, तो क्या इससे वाकई कोई फर्क पड़ता है? – pikachu0

+0

@ pikachu0, सभी आरडीबीएमएस मामले-असंवेदनशील नहीं हैं। उदाहरण के लिए, PostgreSQL - आरडीबीएमएस मैं उपयोग करता हूं - डिफ़ॉल्ट रूप से केस-संवेदी है। –

+0

हां, यही कारण है कि मैंने कहा * अगर * यह असंवेदनशील था। :) – pikachu0

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