2013-09-25 14 views
8

Oto mój kod migracji:laravel 4 Migracja - Nie można dodać klucz obcy

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'); 
} 

Gdy kod do definiowania klucza obcego nie jest wypowiedziało się, pojawia się następujący błąd w wierszu poleceń: ogólne error: 1215 Nie można dodać ograniczenia klucza obcego.

Jakieś pomysły, co robię źle?

Odpowiedz

16
$table->integer('foo_id')->unsigned; 

powinny być

$table->integer('foo_id')->unsigned(); 

lub użyć skróconej wersji: "Doh"

$table->unsignedInteger('foo_id'); 
+1

w słynnych słowach Homera,. Dzięki! – StackOverflowNewbie

+5

Nie bij się - mogę tylko odpowiedzieć na twoje pytanie, ponieważ zrobiłem dokładnie to samo. :-) – ceejayoz