Laravel Migration不正确的表定义

时间:2015-03-06 09:07:52

标签: 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->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)

知道如何处理这个? 提前谢谢!

2 个答案:

答案 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');