Laravel有很多关系错误

时间:2016-07-21 05:44:08

标签: laravel eloquent many-to-many laravel-5.2

我有两个models,名称分别为PluginsUser。我正在many to many relationship pivot table plugin_user名为migration的{​​{1}}。

以下是架构:

create_users_plugins_table.php

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(); }); } 我跟随关系函数:

User model

通过以下代码获取行:

public function userplugins(){

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

我收到以下错误:

  

SQLSTATE [42S02]:未找到基表或视图:1146表'nitsbuilder.plugins_user'不存在(SQL:选择$user = User::findorFail($id); return $user->userplugins()->first()->contents; 。*,pluginsplugins_user as user_idpivot_user_idplugins_userplugins_idpivot_plugins_idplugins_usercontents来自pivot_contents内部联接{ {1}} plugins = plugins_userplugins其中idplugins_user = 1限制1)

请帮我解决这个错误。

由于

2 个答案:

答案 0 :(得分:1)

在您的迁移中,您的表名是

`plugin_user` 

但搜索

的查询
`plugins_user`

您可能需要使用表名更新Plugin模型。

答案 1 :(得分:1)

问题是你的桌子名称。该错误表明它正在寻找 plugins_user ,但您的迁移显示 plugin_user 表缺少s。这可能是由于模型插件的命名应该是插件

更改表名或转到https://laravel.com/docs/5.1/eloquent-relationships#many-to-many以检查如何更改关系的引用表。