Laravel 根据枢轴额外字段从枢轴附加/分离模型

Posted

技术标签:

【中文标题】Laravel 根据枢轴额外字段从枢轴附加/分离模型【英文标题】:Laravel Attach/Detach model from pivot depending on pivot extra field 【发布时间】:2016-01-23 07:41:27 【问题描述】:

Council 和 ManagementUnit 之间存在多对多关系。关联实体每年都在变化,所以数据透视表是这样的:

council_id
management_unit_id
year

我的问题是同一组合的council_id + management_unit_id 键可以出现多次,所以我不知道如何附加()或分离()模型。例如,如果我有这个:

council_id | management_unit_id | year
1          | 1                  | 2010
1          | 1                  | 2011
1          | 1                  | 2012

我将如何仅在 2011 年将 Council(1) 从 ManagementUnit(1) 中分离出来? 或者我将如何在 2013 年将理事会 (1) 附加到 ManagementUnit(1)?

使用 Laravel 5.1

【问题讨论】:

【参考方案1】:

不确定您的关系是如何设置的,因此您可能需要稍微调整一下。但试一试:

$managementUnit = ManagementUnit::find(1);
$managementUnit->councils()->where('id', 1)->wherePivot('year', 2011)->detach(1);

【讨论】:

工作就像一个魅力,谢谢!我什至有这样的关系:)【参考方案2】:

在 laravel 5.6 中仅适用于:

$managementUnit = ManagementUnit::find(1);
$managementUnit->councils()->where('conuncils.id', 1)->wherePivot('year', 2011)->detach();

【讨论】:

以上是关于Laravel 根据枢轴额外字段从枢轴附加/分离模型的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:保存/附加/同步自定义枢轴模型(belongsToMany)

Laravel Eloquent 嵌套关系枢轴与约束

Laravel 枢轴关系

Laravel Eloquent Query 包含枢轴和关系

Laravel 5.5 枢轴连接以获取具有主要 MySQL 结果的枢轴值

三向枢轴表 Laravel