我有两个models
,名称分别为Plugins
和User
。我正在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;
。*,plugins
。plugins_user
asuser_id
,pivot_user_id
。plugins_user
为plugins_id
,pivot_plugins_id
。plugins_user
为contents
来自pivot_contents
内部联接{ {1}}plugins
=plugins_user
。plugins
其中id
。plugins_user
= 1限制1)
请帮我解决这个错误。
由于
答案 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以检查如何更改关系的引用表。