2016-10-29 110 views
0

通过角色创建和更新来处理新用户的最简洁方式是什么? 我得到了具有关系的用户和角色表:$ this-> belongsToMany(Role :: class)。 当我创建一个新用户时,我想以相同的形式分配角色,但角色将被添加到不同的表中。同样的,当我更新用户时,也许我会添加一个额外的角色,或者我可能需要删除一些角色。在更新场景中,我需要查看表中的角色并与表单同步数据。 以下是更新用户和角色信息的功能。用户更新有效,但角色更新没有。 最干净的代码是什么: 创建一个具有一个或多个角色的新用户,并更新用户信息并同步角色信息。在一个Eloquent Laravel查询中插入/更新多个记录

public function update($id, Requests\CreateUserRequest $request) { 
    $user=User::findOrFail($id); 
    $user->name=$request->name; 
    $user->email=$request->email; 
    if($request->resetPassword) 
    { 
     $user->password=null; 
     //send email to user to reset the password 
    } 
    $user->save(); 
    $roles=Role::sync($request->roles); 
    $roles->user()->update($user->id); 

    //$user->update($request->all()); 
    flash('Great!! User was updated', 'success'); 
    return redirect('users'); 
} 
+0

为什么不使用事件来设置注册时的默认角色? –

回答

1

要更新的角色,你可以为尝试:

$user->save(); 
$user->roles()->sync($request->roles); 

它将为这两个更新工作和创造。

+0

工程很好,只需要确保$ request->角色返回一个数组。 – Guntar

+0

乐意提供帮助:D ...是的,它应该是一个数组。 –

相关问题