Laravel 5.1迁移错误自动增加主要

时间:2016-12-27 14:36:14

标签: php mysql laravel migration laravel-5.1

我正在学习Laravel一段时间,我为自己创建了一些基本项目,但今天我尝试使用更多整数来迁移表。但它仍然会出错。

每个整数都尝试auto_increment和primary,这可能是个问题,但我不知道,如何解决它。

        Schema::create ('users', function (Blueprint $table)
    {
        $table->increments ('id');
        $table->string ('email')->unique();
        $table->string ('pass',250);
        $table->integer ('tickets',4);
        $table->integer ('tokens',4);
        $table->integer ('in_raffle',4);
        $table->text ('profile',500);
        $table->string ('ip',20);
        $table->integer ('ban',1);
        $table->integer ('notice',1);
        $table->timestamp ('last_login');

    });

https://s28.postimg.org/fh3uaqdct/screen2.jpg

有人可以告诉我,我该如何解决这个问题?编辑什么才能正常使用?

非常感谢,祝你有愉快的一天!

3 个答案:

答案 0 :(得分:5)

删除所有integer()中的秒参数:

$table->integer('tickets');
$table->integer('tokens');
$table->integer('in_raffle');
$table->integer('ban');
$table->integer('notice');

事件是integer()方法的secont参数是autoIncrement,它被视为布尔值。当您传递与false不同的内容时,Laravel认为您希望此整数为auto_increment

答案 1 :(得分:1)

该函数的声明如下:

public function integer($column, $autoIncrement = false, $unsigned = false)

所以不要使用整数长度,它会正常工作。如果您想要一个小于11的整数,则可以使用smallIntegermediumInteger,其长度为here

答案 2 :(得分:0)

$table->tinyInteger('tickets');
$table->tinyInteger('tokens');
$table->tinyInteger('in_raffle');
$table->boolean('ban')->default(false);
$table->boolean('notice')->default(false);