【发布时间】:2018-07-14 23:37:00
【问题描述】:
我正在尝试实现对数据透视表的简单插入,但我不明白为什么它不起作用的原理。
我有一个 Languages 表,其中包含一个用语言填充的 id、名称和代码。我有一个用户表填充用户。中间表是 users_languages,其中包含 user_id 和 language_id 列。
我的请求是这样的
{
"languages": [1, 2] -> language ids
}
我的用户模型中的语言方法如下所示:
public function language() : BelongsToMany
{
return $this
->belongsToMany(Language::class, 'users_languages')
->withPivot('user_id', 'language_id');
}
我正在尝试添加这样的语言:
public function setLanguages(array $languages) : self
{
$this->language()->delete();
$this->language()->createMany($languages);
return $this;
}
我得到的结果实际上是它试图在 Languages 表中创建一个新条目,而不是仅仅在 user_id 和 language_id 之间建立连接。
我正在查看文档和一些文章这是如何工作的,但我发现没有一个解决方案有效。我在我的项目中使用 Lumen 5.5。提前感谢您的帮助!
【问题讨论】:
标签: php laravel eloquent lumen