我正在学习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
有人可以告诉我,我该如何解决这个问题?编辑什么才能正常使用?
非常感谢,祝你有愉快的一天!
答案 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的整数,则可以使用smallInteger
或mediumInteger
,其长度为here。
答案 2 :(得分:0)
月
$table->tinyInteger('tickets');
$table->tinyInteger('tokens');
$table->tinyInteger('in_raffle');
$table->boolean('ban')->default(false);
$table->boolean('notice')->default(false);