我有两个models
,分别命名为Plugins
和User
,并带有表。我试图在名为create_users_plugins_table.php
的migration
中拥有many to many relationship
和名为plugin_user
的pivot table
。
以下是架构:
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');
}
在通过以下代码获取行时:
$user = User::findorFail($id);
return $user->userplugins()->first()->contents;
我得到以下错误:
SQLSTATE[42S02]:未找到基表或视图:1146表'nitsbuilder.plugins_user'不存在(SQL:选择plugins
.*,plugins_user
. user_id
作为pivot_user_id
,plugins_user
. plugins_id
作为pivot_plugins_id
,plugins_user
. contents
as pivot_contents
from plugins
inner join plugins_user
on plugins
. id
= plugins_user
. plugins_id
其中plugins_user
. user_id
=1限制1)
请帮助我修复这个bug。
谢谢
2条答案
按热度按时间643ylb081#
问题出在你的表名上。错误显示它正在查找plugins_user,但你的迁移显示plugin_user表缺少s。这可能是由于模型的命名为Plugins,而模型的命名应为Plugin
更改表名或转到https://laravel.com/docs/5.1/eloquent-relationships#many-to-many查看如何更改关系的引用表。
wr98u20j2#
看起来在迁移中,表名为
但是搜索
您可能需要使用表名更新
Plugin
模型。