Laravel Migration返回不正确的表定义

时间:2016-07-19 12:50:08

标签: php laravel laravel-5

Laravel Migration返回"表定义不正确;只能有一个自动列,必须将其定义为键#34;为什么? Link of Code

3 个答案:

答案 0 :(得分:1)

该死的,考虑一些atomizing

创建迁移时integer值的第二个参数不是字段的长度,而是它应该或不应该是自动增量。

https://github.com/laravel/framework/blob/330d11ba8cd3d6c0a54a1125943526b126147b5f/src/Illuminate/Database/Schema/Blueprint.php#L443

这就是你的问题所在。

例如$table->integer('celular',15)->nullable();。 Laravel会假设你想要自动增量,因为15是一个真正的值,因为mysql doesn't allow more than one column to be autoincrement你自己就错了。

答案 1 :(得分:0)

检查你的表结构,你最想建立一个有两个自动增量列的表,这是不可能的

答案 2 :(得分:0)

$table->increments('id')->primary()代替$table->increments('id')应该有效。由于错误消息确实说您没有将列定义为主键