2016-07-18 7 views
5

Ich habe diese MigrationsdateiLaravel :: Der beste Weg, Fremdschlüssel

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

und ich möchte zu aktualisieren, um zu machen zu aktualisieren -> onDelete (‚Kaskade‘);

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

Was ist der beste Weg, dies zu tun?

Gibt es etwas wie -> change();

Dank

+0

actualy ist es 'https: // laravel.com/docs/5.0/schema # Wechsel-columns' –

+0

Ich bin nicht zu ändern Spalten, ich bin wechselnden Fremdschlüssel. –

Antwort

9

löschen Fremdschlüssel tun es dann wieder und führen migrieren.

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

Es macht Sinn, weil MySQL es auf die gleiche Weise tun würde, es gibt keine "Änderung" in MySQL für diesen Fall. Allerdings erwarte ich einen Wrapper/single_command auf Laravel-Ebene für eine Situation wie diese. Vielen Dank. –