3

Phinx 移行addColumn()メソッドを使用して整数列の明示的な長さを設定できるかどうか教えてください。

ドキュメントはMysqlAdapter::INT_REGULARlikeで limit オプションを使用します['limit' => MysqlAdapter::INT_SMALL, 'signed' => false]が、列の長さを自動的に設定しますint(10)

int(11)しかし、たとえば外部キー列が必要な場合はどうすればよいですか?

どうも。

4

1 に答える 1

3

私が理解しているように、 limit オプション 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()

于 2016-06-22T09:40:57.827 に答える