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
aspivot_user_id
,plugins_user
.plugins_id
aspivot_plugins_id
,plugins_user
.contents
aspivot_contents
fromplugins
inner joinplugins_user
onplugins
.id
=plugins_user
.plugins_id
whereplugins_user
.user_id
= 1 limit 1)
Bitte helfen Sie mir bei der Beseitigung dieses Fehlers.
Dank
Hoffen Sie, dass Sie Ihre Migrationen bereits durchführen? Und was ist der Code in Ihrem Plugins-Modell? –
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 –
@ArifulHaque Ich habe das schon gemacht. –