Php Laravel迁移不正确的表定义
尝试运行以下迁移时:Php Laravel迁移不正确的表定义,php,mysql,laravel,laravel-4,Php,Mysql,Laravel,Laravel 4,尝试运行以下迁移时: Schema::create('languages', function(Blueprint $table){ $table->increments('id'); $table->string('lang', 10); $table->string('name', 50); $table->integer('active', 2); $table->
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');增加表的ID(主键)
你知道怎么处理吗?
提前谢谢 你的问题是
$table->integer('active', 2);
传递给integer的第二个参数是一个布尔值,指示该列是否应为自动递增列,值2
将被视为布尔值true
编辑
如果只需要一个short整数(如布尔值),则使用
$table->tinyinteger('active');
或
问题是
$table->integer('active',2)
下面是整数的方法签名:
public function integer($column, $autoIncrement = false, $unsigned = false)
第二个参数实际上是自动递增的标志。而2
的计算结果为true
不能指定整数的长度。但是,您可以使用tinyInteger
:
$table->tinyInteger('active');
我的错,以为参数应该是长度!
$table->tinyInteger('active');