从数据透视表 laravel 中删除一项

问题描述 投票:0回答:3

如果我有行的 id,如何从 Laravel 中的多对多关系数据透视表中仅删除一个条目?

我有两个多对多关系的实体。 例如,如果我有用户,并且 user_id = 1(表中该用户的 2 个条目),如果我执行 users->entity()->detach() ,它将删除 user_id = 1 的所有条目,并且我只想删除其中pivot->id = some_id_i_give

的条目
laravel eloquent many-to-many
3个回答
4
投票

解决了。我用过:

->wherePivot('id', '=', $pivot_id)->detach()

效果很好。


2
投票

假设您有

User
Entity
具有多对多关系的模型。然后你就可以使用

$user->entity()->detach($entityId);

这只会删除具有该

$entityId

的行

1
投票

你可以这样做的最佳实践,

// Detach a single entity from the user...
$entity = Entity::find($your_entity_id);
$user->entities()->detach($entity->id);

首先,通过 Entity Model 找到具有所需 id 的实体,

$entity = Entity::find($your_entity_id);

获得实体后,可以将其传递给

detach()
方法,

$user->entities()->detach($entity->id);

欲了解更多信息,请访问此链接

© www.soinside.com 2019 - 2024. All rights reserved.