2016-10-29 109 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 ...是的,它應該是一個數組。 –

相關問題