Eloquent外键约束错误地形成了laravel

时间:2017-03-29 20:38:06

标签: laravel eloquent foreign-keys migration

我正在尝试向“用户”添加外键。表。 这些是迁移的时间戳

eloquent migrations

这是代码:

Schema::create('types', function (Blueprint $table) {
        $table->increments('id');
        $table->string('types');
        $table->timestamps();
    });

Schema::create('users', function (Blueprint $table) {
        //...
        $table->integer('type')->length(10)->unsigned();
        $table->foreign('type')->references('id')->on('types')->onDelete('cascade');
        $table->rememberToken();
        $table->timestamps();
    });

我真的不知道自己做错了什么。

修改 以下是我收到的建议后发生的事情

error message

1 个答案:

答案 0 :(得分:3)

尝试在之后添加外键,即创建表格,即:

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        //...
        // $table->integer('type')->length(10)->unsigned();
        $table->unsignedInteger('type');       
        $table->rememberToken();
        $table->timestamps();
    });

    Schema::table('users', function (Blueprint $table) {
        $table->foreign('type')->references('id')->on('types')->onDelete('cascade');
    });
}

最好使用$table->unsignedInteger('type');

<强>更新

结论是type是MYSQL中的一个保留字。