Laravel Larvel如何使用附加信息从模型中分离

Laravel Larvel如何使用附加信息从模型中分离,laravel,eloquent,Laravel,Eloquent,我想使用具有附加信息的轴拆离模型。对于附着,这很有效: $user->badges()->attach($badge_id, ['additional' => $addInfo]); 我想做的是 $user->badges()->detach($badge_id, ['additional' => $addInfo]); 但不幸的是,这会删除所有带有$badge_id的徽章。Attach有提供附加属性的选项,detach没有。请参阅api参考: 但是,您

我想使用具有附加信息的轴拆离模型。对于附着,这很有效:

$user->badges()->attach($badge_id, ['additional' => $addInfo]);
我想做的是

$user->badges()->detach($badge_id, ['additional' => $addInfo]);

但不幸的是,这会删除所有带有$badge_id的徽章。

Attach有提供附加属性的选项,detach没有。请参阅api参考:

但是,您可以执行以下操作:

$user->badges()->where('id',$badge)->where('additional', $addInfo)->update(['user_id' => null]);

假设它是badges.user_id和additional只是一个值。

可能重复@SafoorSafdar,我看不到该线程中有任何提到使用Pivot分离的内容。但是,分离时,其他数据属性会自动分离。你不需要单独分离。这或多或少是我现在正在做的-出于方便-为什么取消用户id而不删除?分离意味着删除与对象的关系。不是删除。当然-我的意思是为什么不删除关系。。。Detach明确删除数据透视表中的行,该行不会在表中留下空关系。。。
$user->badges()->where('id',$badge)->where('additional', $addInfo)->update(['user_id' => null]);