如果可以通过Phinx迁移addColumn()
方法设置明确的整数列长度,请告诉我吗?
文档使用限制选项MysqlAdapter::INT_REGULAR
,例如['limit' => MysqlAdapter::INT_SMALL, 'signed' => false]
,但它会自动设置列的长度,例如int(10)
。
但是如果我需要int(11)
例如外键列,该怎么办?
THX。
答案 0 :(得分:3)
据我所知,limit option MysqlAdapter::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 | |
+---------+---------+------+-----+---------+----------------+
要获取更多信息,请查看getSqlType()
和getPhinxType()
call size(array)
个No symbol "size" in current context.
函数的source code。