2013-08-19 82 views
0

嗨,我是Yii框架的新手。在Yii中向數據庫添加列

我的問題在這裏是如何添加一列到數據庫中的表?

我用addColumn()如下:

Yii:app()->databasename->tablename->addColumn('tablename', 'newcolumn');

這裏我的問題是我有什麼用其替換app()。我的意思是,應該將app()替換爲數據庫名稱,表名,列名或其他名稱?

謝謝。

+0

爲什麼需要在運行時添加列?爲什麼不預先設計你的模式?你正在解決什麼是最初的任務?謝謝。 – spacediver

回答

0

我不知道你已經找到了的Yii ::應用程序() - 從> dbName-> tableName-> addColumn(),但據我所知,這塊代碼將無法使用。首先,如果您正在嘗試編寫一些可以使您的表保持最新的內容(例如通過添加/刪除列/表對數據庫進行版本控制的方式),請考慮使用database migrations

如果您需要此查詢,請使用CDbCommand::addColumn()。例如:

Yii::app()->db->createCommand()->addColumn('user', 'name', 'varchar(64)'); 
+0

作爲一般的做法,建議什麼?數據庫遷移或查詢?在我正在編寫的代碼中,我將創建此列一次,但在需要時將值添加到列中。例如,我今天創建了該列,但每隔2-3天只能在列中添加一次值。 – Newtt

+0

如果您和其他開發人員正在開發一個項目,並且您需要一種方法來保持每個人的數據庫處於最新狀態,或者如果您想稍後進行構建過程(例如使用Phing),那麼遷移效果會更好。但是,如果此列是基於代碼中的某些邏輯動態創建的,則最好使用該函數。但是,在後一種情況下,我會敦促您重新考慮您的設計;可能有更簡潔的方法來做到這一點(I.E.動態添加基於代碼中某些邏輯的列並不是一個好習慣)。 –