Laravel 5.1-如何获得不附加的枢轴寄存器添加


Laravel 5.1 - How to get not attached pivot registers for add

我正在用Laravel 5.1进行CRUD。当我单击添加按钮时,会显示一个带有选择框的表单(控制器会正确发送所有数据)。一切都很好,但我想改进不显示附加到模型的元素的形式。

示例:两个模型,用户和角色,具有多对多关系。我的控制器获取附加到当前用户的所有角色,但已附加的角色除外。

知道怎么得到这个吗?

首先,您可以获得与当前User:关联的角色ids

 $user_roles = Auth::user()->roles()->lists('id')->toArray();

然后获取除$user_roles:之外的所有角色

 $other_roles = Roles::whereNotIn('id', $user_roles);

最后将这些角色附加到User:

foreach($other_roles as $role){
    Auth::user()->roles()->attach($role->id);
}

希望这能有所帮助。