2012-09-20 20 views
24

Tôi muốn thêm một cột tại vị trí thứ bảy trong bảng, Tôi đang sử dụngaddColumn vị trí yii di cư

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

thêm cột ở cuối. Có cách nào tôi có thể đề cập đến địa điểm để thêm cột không? Hoặc bất kỳ từ khóa nào sau cột để thêm cột mới của tôi sau, cho cột exapmle, mật khẩu. Tôi đã học cách di chuyển aboout từ Yii Doc

Trả lời

40

Điều này sẽ hiệu quả!

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

ví dụ:

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

Cảm ơn! Nó đã làm :) Tôi không thể tìm thấy cách để làm điều đó trong doc, là có bất cứ điều gì khác mà bạn giới thiệu cho Yii. và chỉ một câu hỏi cuối cùng, khi tên của lớp di chuyển xuất hiện là m120920_041119_update_users_about tôi có thể thêm $ this-> addColumn ('users', 'about_ME', 'string AFTER password'); _ME phải là tên của lớp học? –

+0

Nó hoạt động, nhưng nó hoạt động lừa đảo; khi Yii soạn SQL, nó đơn giản là 'copy và past' giá trị 'type' vào sql, và, ngẫu nhiên, cú pháp 'type AFTER a_column' tạo ra SQL hợp lệ. Tất nhiên, tôi rất vui khi sử dụng từ bây giờ, và cảm ơn vì đã cho chúng tôi thấy phương pháp này. – realtebo

+2

Rất nhiều thứ được tạo ra bằng cách "lừa" trong Yii (và thế giới của PHP (và lập trình (và cuộc sống))). –

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

Điều này hoạt động tốt và thanh lịch. Cảm ơn! –

+1

ĐÂY là * cách *. – christian