Laravel 4 Migration - 无法添加外键约束

Sta*_*bie 8 laravel laravel-4

这是我的迁移代码:

public function up()
{
    Schema::create('foos', function(Blueprint $table) {
        // Primary key
        $table->increments('id');

        // Standard
        $table->engine = 'InnoDB';
        $table->timestamps();
        $table->softDeletes();
    });

    Schema::create('bars', function(Blueprint $table) {
        // Primary key
        $table->increments('id');

        // Define foreign key
        $table->integer('foo_id')->unsigned;

        // Foreign key contraints
        // NOTE: causes "General error: 1215 Cannot add foreign key constraint"
        // $table->foreign('foo_id')->references('id')->on('foos');

        // Standard
        $table->engine = 'InnoDB';
        $table->timestamps();
        $table->softDeletes();
    });
}

public function down()
{
    Schema::drop('foos');
    Schema::drop('bars');
}
Run Code Online (Sandbox Code Playgroud)

当没有注释掉定义外键约束的代码时,我在命令行上收到以下错误:常规错误:1215无法添加外键约束.

我有什么想法我做错了吗?

cee*_*yoz 15

$table->integer('foo_id')->unsigned;
Run Code Online (Sandbox Code Playgroud)

应该

$table->integer('foo_id')->unsigned();
Run Code Online (Sandbox Code Playgroud)

或者您可以使用简短版本:

$table->unsignedInteger('foo_id');
Run Code Online (Sandbox Code Playgroud)

  • 不要殴打自己 - 我只能回答你的问题,因为我做了同样的事情.:-) (5认同)