我正在用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);
}
希望这能有所帮助。