尝试运行以下迁移时:
Schema::create('languages', function(Blueprint $table){
$table->increments('id');
$table->string('lang', 10);
$table->string('name', 50);
$table->integer('active', 2);
$table->timestamps();
});
我收到以下错误:
there can be only one auto column and it must be defined as a key
但laravel的文档指出:$table->increments('id'); Incrementing ID to the table (primary key)
知道如何处理这个? 提前谢谢!
答案 0 :(得分:2)
你的问题是
$table->integer('active', 2);
传递给整数的第二个参数是一个布尔值,指示列是否应该是自动增量列,值2
将被视为布尔true
修改强>
如果您只想要 短 整数(例如布尔值),请使用
$table->tinyinteger('active');
或
$table->boolean('active');
答案 1 :(得分:1)
问题是$table->integer('active', 2)
以下是integer
的方法签名:
public function integer($column, $autoIncrement = false, $unsigned = false)
第二个参数实际上是自动增量的标志。 2
评估为true
。
您无法指定整数的长度。但是,您可以改为使用tinyInteger
:
$table->tinyInteger('active');