2016-07-18 14 views
5

mam tego pliku migracjilaravel :: Najlepszy sposób zaktualizować klucz obcy

Schema::create('table_one', function(Blueprint $table) 
{ 
    $table->increments('id'); 
    $table->string('name'); 
    $table->integer('table_two_id')->unsigned(); 
    $table->foreign('table_two_id')->references('id')->on('table_two'); 
    $table->timestamps(); 
}); 

i chcę zaktualizować aby -> onDelete ('Kaskada');

$table->foreign('table_two_id')->references('id')->on('table_two')->onDelete('cascade'); 

Jaki jest najlepszy sposób na zrobienie tego?

Czy jest coś takiego jak -> change();

Dzięki

+0

właściwie jest 'https: // laravel.com/docs/5.0/schema # zmieniając-columns' –

+0

ja nie zmieniają kolumny, ja zmienia klucze obce. –

Odpowiedz

9

Usuń klucz obcy następnie zrobić to ponownie i uruchom migrację.

public function up() 
{ 
    Schema::table('table_one', function ($table) { 
     $table->dropForeign('table_two_id'); 

     $table->foreign('table_two_id') 
      ->references('id')->on('table_two') 
      ->onDelete('cascade'); 
    }); 
} 
+0

Ma to sens, ponieważ MySQL zrobiłby to w ten sam sposób, nie ma "zmiany" w MySQL dla tego przypadku. Jednak oczekuję wrapper/single_command na poziomie Laravel dla takiej sytuacji. Dzięki. –