Laravel Attach/Detach 来自枢轴的模型取决于枢轴额外字段
Laravel Attach/Detach model from pivot depending on pivot extra field
我在 Council 和 ManagementUnit 之间存在多对多关系。关联的实体每年都在变化,所以枢轴table是这样的:
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 年将 Council(1) 附加到 ManagementUnit(1)?
与Laravel 5.1一起工作
不确定你的关系是如何设置的,所以你可能需要稍微调整一下。但试一试:
$managementUnit = ManagementUnit::find(1);
$managementUnit->councils()->where('id', 1)->wherePivot('year', 2011)->detach(1);
在 laravel 5.6 中仅适用于:
$managementUnit = ManagementUnit::find(1);
$managementUnit->councils()->where('conuncils.id', 1)->wherePivot('year', 2011)->detach();
我在 Council 和 ManagementUnit 之间存在多对多关系。关联的实体每年都在变化,所以枢轴table是这样的:
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 年将 Council(1) 附加到 ManagementUnit(1)?
与Laravel 5.1一起工作
不确定你的关系是如何设置的,所以你可能需要稍微调整一下。但试一试:
$managementUnit = ManagementUnit::find(1);
$managementUnit->councils()->where('id', 1)->wherePivot('year', 2011)->detach(1);
在 laravel 5.6 中仅适用于:
$managementUnit = ManagementUnit::find(1);
$managementUnit->councils()->where('conuncils.id', 1)->wherePivot('year', 2011)->detach();