Laravel 5.1 - 如何获取附加的透视寄存器

时间:2015-12-28 15:19:30

标签: php database laravel-5.1

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

示例:2个模型,用户和角色,具有多对多的关系。我的控制器获取附加到当前用户EXCEPT的所有角色,这些角色已经附加。

知道如何获得这个吗?

1 个答案:

答案 0 :(得分:1)

首先,您可以获得与当前ids附加的角色User

 $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);
}

希望这有帮助。