使用Laravel迁移处理外键的正确方法?

时间:2017-04-06 19:22:04

标签: php mysql laravel foreign-keys migration

我是laravel和迁移的新手,我似乎无法找到设置外键的正确方法。

Schema::create('sights', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->text('description');
        $table->integer('contact_id');
        $table->integer('media_id');
        $table->timestamps();
    });

    Schema::table('sights', function($table) {
        $table->foreign('contact_id')->references('id')->on('contacts');
        $table->foreign('media_id')->references('sight_id')->on('sightMedia');
    });

如果不清楚," contact_id"是一个外键,应该引用该列" id"在名为" contacts"的表中, 和" media_id"引用列" sight_id"在中间表" sightMedia"。

我尝试迁移时给出的错误如下:

error screenshot

编辑:这是用户表,它是迁移线中的第二个,因此我认为迁移停止并报告错误。

        Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('email');
        $table->string('firstName');
        $table->string('lastName');
        $table->string('password');
        $table->string('facebook');
        $table->integer('score_id')->unsigned();
        $table->integer('role_id')->unsigned();
        $table->timestamps();
    });

    Schema::table('users', function ($table) {
        $table->foreign('score_id')->references('id')->on('scores');
        $table->foreign('role_id')->references('id')->on('roles');
    });

提前谢谢。

0 个答案:

没有答案