2016-07-21 14 views
0

Ich habe zwei models unter dem Namen Plugins und User mit Tabellen jeweils. Ich versuche many to many relationship mit einem pivot table namens plugin_user im migration namens create_users_plugins_table.php zu haben.Laravel viele zu viele Beziehung Fehler

Es folgt das Schema:

public function up() 
{ 
    Schema::create('plugin_user', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->integer('user_id'); 
     $table->integer('plugins_id'); 
     $table->json('contents'); 
     $table->timestamps(); 
    }); 
} 

Im User model ich für Beziehung folgende Funktion haben:

public function userplugins(){ 

    return $this->belongsToMany('App\Plugins')->withPivot('contents'); 
} 

Während die Zeile durch folgenden Code holen:

$user = User::findorFail($id); 
return $user->userplugins()->first()->contents; 

I bekomme einen folgenden Fehler:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'nitsbuilder.plugins_user' doesn't exist (SQL: select plugins .*, plugins_user . user_id as pivot_user_id , plugins_user . plugins_id as pivot_plugins_id , plugins_user . contents as pivot_contents from plugins inner join plugins_user on plugins . id = plugins_user . plugins_id where plugins_user . user_id = 1 limit 1)

Bitte helfen Sie mir bei der Beseitigung dieses Fehlers.

Dank

+0

Hoffen Sie, dass Sie Ihre Migrationen bereits durchführen? Und was ist der Code in Ihrem Plugins-Modell? –

+1

Einfach wie das: plugin_user! == plugins_user der Fehler genau sagt Ihnen das Problem. Du hast plugins_user aber plugin_user nicht definiert - du kannst den referenzierten Tabellennamen in deiner Beziehung ändern https://laravel.com/docs/5.1/eloquent-relationships#many-to-many –

+0

@ArifulHaque Ich habe das schon gemacht. –

Antwort

1

Sieht aus wie in der Migration, Ihre Tabellennamen

`plugin_user` 

aber die Abfrage der Suche nach

`plugins_user` 

Sie ist vielleicht Ihr Plugin Modell mit dem Tabellennamen aktualisieren müssen .

1

Das Problem ist der Name Ihrer Tabelle. Der Fehler sagt, dass es nach plugins_user gesucht hat, aber Ihre Migration zeigt plugin_user Tabelle, die die s fehlt. Dies könnte auf die Benennung des Modells Plugins zurückzuführen sein, die Plugin

sein sollte entweder den Tabellennamen oder https://laravel.com/docs/5.1/eloquent-relationships#many-to-many gehen ändern, um zu überprüfen, wie die referenzierte Tabelle der Beziehung zu ändern.