2012-09-20 16 views
24

मैं तालिका में सातवें स्थान पर एक स्तंभ जोड़ना चाहते हैं, मैंaddColumn Yii प्रवास स्थिति

$this->addColumn('table_name','column_name','type'); 

उपयोग कर रहा हूँ अंत में स्तंभ कहते हैं। क्या कोई तरीका है जहां मैं कॉलम जोड़ने के लिए जगह का उल्लेख कर सकता हूं? या कॉलम कीवर्ड के बाद, मेरे नए कॉलम को एक्सपैपल, पासवर्ड कॉलम के बाद जोड़ने के लिए। मैंने Yii Doc

उत्तर

40

से माइग्रेशन के बारे में सीखा है यह काम करना चाहिए!

$this->addColumn('table_name', 'column_name', 'type AFTER column6'); 

उदाहरण:

$this->addColumn('tbl_posts', 'email', 'VARCHAR(150) AFTER `name` '); 
$this->addColumn('tbl_posts', 'phone', 'string AFTER `email` '); 
+1

धन्यवाद! यह किया :) मुझे डॉक्टर में ऐसा करने का तरीका नहीं मिला, क्या आप कुछ और है जिसे आप वाईआई के लिए संदर्भित करते हैं। और केवल एक आखिरी सवाल, जब माइग्रेशन क्लास का नाम m120920_041119_update_users_about प्रतीत होता है, तो मैं $-> addColumn ('users', 'about_ME', 'पासवर्ड के बाद स्ट्रिंग') जोड़ सकता हूं; _ME कक्षा के नाम पर होना चाहिए? –

+0

यह काम करता है, लेकिन यह tricking काम करता है; जब वाईआई एसक्यूएल लिखता है, तो यह 'टाइप' मान को एसक्यूएल में 'कॉपी और अतीत' करता है, और, आकस्मिक रूप से, वाक्यविन्यास 'a_column के बाद का प्रकार' वैध SQL उत्पन्न करता है। बेशक, मुझे अब से उपयोग करने में खुशी है, और हमें यह तरीका दिखाने के लिए धन्यवाद। – realtebo

+2

वाईआई (और PHP (और प्रोग्रामिंग (और जीवन))) की दुनिया में "ट्रिकिंग" द्वारा बहुत सी चीजें बनाई जाती हैं। –

15
$this->addColumn('{{%user}}', 'username', 
      $this->string()->notNull()->unique()->after('id') 
      ); 
+3

द्वारा कहा गया था यह ठीक काम करता है और यह सुरुचिपूर्ण है। धन्यवाद! –

+1

यह * तरीका * यह होना चाहिए। – christian