2016-05-17 17 views
2

你能告訴我,如果可以通過Phinx遷移addColumn()方法設置整數列的顯式長度嗎?Phinx遷移 - 整數列的明確長度

文檔使用MysqlAdapter::INT_REGULAR的限制選項,如['limit' => MysqlAdapter::INT_SMALL, 'signed' => false],但它會自動設置列的長度,例如, int(10)

但是我應該怎麼做,如果我需要int(11)例如外鍵列?

Thx。

回答

1

據我所知limit optionMysqlAdapter::INT_REGULAR就像Phinx中的預定義類型。但是你也可以使用你自己的limit變量。

下面是一個例子:

// using Phinx 0.5.4 
public function change() { 
    $table = $this->table('papers'); 
    $table->addColumn('user_id', 'integer', ['limit' => 2]) 
     ->addColumn('book_id', 'integer') // by default will be int(11) 
     ->addColumn('bank_id', 'integer', ['limit' => 32]) 
     ->create(); 

}

MySQL的描述結果:

+---------+---------+------+-----+---------+----------------+ 
| Field | Type | Null | Key | Default | Extra   | 
+---------+---------+------+-----+---------+----------------+ 
| id  | int(11) | NO | PRI | NULL | auto_increment | 
| user_id | int(2) | NO |  | NULL |    | 
| book_id | int(11) | NO |  | NULL |    | 
| bank_id | int(32) | NO |  | NULL |    | 
+---------+---------+------+-----+---------+----------------+ 

要獲得更多信息,請檢查getPhinxType()功能getSqlType()source codesource code

相關問題