2017-09-29 3 views
1

Während Migration Scripts ich so etwas wie dieseWie Laravel Riss Morphs Methode, um Spalte nach einer bestimmten Spalte hinzufügen

Schema::table('books', function(Blueprint $table) 
     { 
      $table->string('reference')->after('access'); 
     }); 

tun kann, meine Referenzspalte nach dem Zugriff Spalte Dies wird erstellen. Aber wenn ich Morph benutzen möchte, wie würde ich das machen. Ich dachte darüber nach

Allerdings gibt mir dies einen Migrationsfehler, wenn ich versuche, die Migration auszuführen. Dies liegt daran, dass Morphen keine after Methode hat. Ich benutze Laravel 5.1. Ich bin nicht sicher, wie ich die Referenzspalten nach dem Zugriff haben könnte. Jede Hilfe oder Anregung wäre großartig. Danke

Antwort

3

$ table-> morphs() ist nur eine Abkürzung. Dies ist die Funktion dahinter (Laravel 5.5):

/** 
* Add the proper columns for a polymorphic table. 
* 
* @param string $name 
* @param string|null $indexName 
* @return void 
*/ 
public function morphs($name, $indexName = null) 
{ 
    $this->unsignedInteger("{$name}_id"); 

    $this->string("{$name}_type"); 

    $this->index(["{$name}_id", "{$name}_type"], $indexName); 
} 

So dies die gleiche Wirkung hat:

Schema::table('books', function (Blueprint $table) { 
    $table->unsignedInteger("reference_id")->after('access'); 
    $table->string("reference_type")->after('reference_id'); 
    $table->index(["reference_id", "reference_type"]); 
}); 
+0

Vielen Dank dafür! Ich hatte Probleme mit einem benutzerdefinierten Index für eine Zeichenfolge, die ich im AppServiceProvider nicht überschreiben konnte, wie es von allen anderen vorgeschlagen wurde! – cbloss793

Verwandte Themen