laravel - 将记录添加到数据透视表
问题描述
我有 3 张桌子。
表用户
id
name
表标识符
id
email
和数据透视表 identifier_user
identifier_id
user_id
当存储数据时,我何时将数据添加到数据透视表,例如:
$user=new User ;
$iden=new Identifier ;
我使用 $user->identifiers()->attach($user->id) ,但是那个只是将数据添加到,identifier_id
但我想将数据添加user_id
到
注意:我在两个模型中建立了关系 ManeytoManey
解决方案
首先:你不能像有问题的那样做你的任务,因为$user = new User;
只会创建默认的 User 类实例。
例如:如果您没有用户,则需要像这样创建它:
$user = User::create($userData);
但是,如果您已经在数据库中有用户:
$user = User::findOrFail($userId);
或者$user = User::where(['some_field' => $some_value])->first();
之后,您可以附加关系:
$user->identifiers()->attach([$identifier_ids]);
如果您已经知道关系 ID,或者,如果您需要创建它:
$user->identifiers()->([
new Identifier($identifierDataArray),
new Identifier($identifierDataArray),
]);
希望它可以帮助你。
推荐阅读
- oracle - ora 00907 缺少右括号创建表
- php - 子文件夹的重写规则
- google-visualization - SyntaxError:JSON.parse:JSON 数据的第 1 行第 1 列出现意外字符 - 但 JSON 验证器指示“有效 json”
- javascript - 以编程方式触发按下
- javascript - 是否可以在 JavaScript 中实现一个同时返回函数和数字的成员?
- node.js - React 变量 REACT_APP_API_HOST 不是内部或外部命令
- c++ - 尝试保持函数运行直到输入有效数字
- tensorflow - tensorflow Tf.cond 给出意外的输出
- file - 如果文件没有被覆盖,是否有强制 InstallShield 停止?
- java - Spring Boot 在读取第二个数据库时无法解析占位符