我有两个具有多对多关系的实体:Form
和Section
。有效部分必须“有效”,然后我有一个范围:
/**
*
* @param Builder $query
* @return Builder
*/
public function scopeActive($query)
{
return $query->where('is_active', true);
}
在渲染表单时,只需将活动部分传递给视图:
$sections = Section::active()->get();
问题在于,当发送POST请求时,我必须执行与sync关系的批量分配,并且无法控制传递的id(活动而非活动):
$form->sections()->sync($sectionsId);
有一种方法可以只附加活动部分而无需手动检查每个部分吗?
答案 0 :(得分:0)
您必须首先使用 $ sectionIds 中的部分,然后必须使用 sync()方法。 试试这段代码,
$sectionIds = Section::active()->whereIn('id', [1, 2, 3])->pluck('id');
$form->sections()->sync($sectionIds);
我相信这会奏效。