【发布时间】:2016-11-24 13:06:14
【问题描述】:
我在Plugins 和User 的名称下分别有两个models 和表格。我正在尝试在名为 migration 的 migration 中使用名为 pivot table 的 pivot table 和名为 create_users_plugins_table.php 的 many to many relationship。
以下是架构:
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、@987654338 @.plugins_idaspivot_plugins_id,plugins_user.contentsaspivot_contentsfrompluginsinner joinplugins_useronplugins.id=plugins_idplugins_id.@987 .user_id= 1 限制 1)
请帮我修复这个错误。
谢谢
【问题讨论】:
-
希望您已经运行了迁移?你的
Plugins模型中的代码是什么? -
就这么简单:plugin_user !== plugins_user 错误准确地告诉你问题所在。您没有定义 plugins_user 而是定义了 plugin_user - 您可以在关系 laravel.com/docs/5.1/eloquent-relationships#many-to-many 中更改引用的表名
-
@ArifulHaque 我已经这样做了。
-
@FrankProvost 感谢您的更新。从我这里来
标签: laravel eloquent many-to-many laravel-5.2