2016-01-20 14 views
5

Ho preso in considerazione le tabelle di denominazione automatica nella relazione Laravel molti-a-molti.tabelle di denominazione in molte e molte relazioni laravel

ad esempio:

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

quando cambiare il nome della tabella a:

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

ho un errore nel mio rapporto.

Qual è il problema con product_feature?

+0

Qual è l'errore esatto? Anche quale database stai usando? –

risposta

15

La convenzione di denominazione di Laravel per tabelle pivot è un nome tabella singolarizzato in ordine alfabetico, separato da un carattere di sottolineatura. Quindi, se una tabella è features e l'altra tabella è products, la tabella pivot sarà feature_product.

È possibile utilizzare qualsiasi nome di tabella desiderato (ad esempio product_feature), ma sarà necessario specificare il nome della tabella pivot nella relazione. Questo viene fatto utilizzando il secondo parametro della funzione belongsToMany().

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