2016-01-20 16 views
5

Ich dachte über automatische Benennung Tabellen in Viele-zu-viele Laravel-Beziehung.Benennung Tabellen in vielen zu vielen Beziehungen Laravel

zum Beispiel:

Schema::create('feature_product', function (Blueprint $table) { 

, wenn der Name der Tabelle ändern:

Schema::create('product_feature', function (Blueprint $table) { 

ich einen Fehler in meiner Beziehung.

Was ist los mit product_feature?

+0

Was ist der genaue Fehler? Auch welche Datenbank verwendest du? –

Antwort

15

Die Benennungskonvention von Laravel für Pivot-Tabellen besteht aus singularisierten Tabellennamen in alphabetischer Reihenfolge, die durch einen Unterstrich getrennt sind. Wenn also eine Tabelle features ist und die andere Tabelle products lautet, lautet die Pivot-Tabelle feature_product.

Sie können einen beliebigen Tabellennamen verwenden (z. B. product_feature). Sie müssen dann jedoch den Namen der Pivot-Tabelle in der Beziehung angeben. Dies geschieht mit dem zweiten Parameter der belongsToMany() Funktion.

// in Product model 
public function features() 
{ 
    return $this->belongsToMany('App\Feature', 'product_feature'); 
} 

// in Feature model 
public function products() 
{ 
    return $this->belongsToMany('App\Product', 'product_feature'); 
} 
Verwandte Themen