首页 > 解决方案 > 将记录添加到数据透视表

问题描述

我有 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

标签: laravelpivot-table

解决方案


首先:你不能像有问题的那样做你的任务,因为$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), ]);

希望它可以帮助你。


推荐阅读