[英]Laravel Eloquent Insert Multiple records only if one field is provided as an array
[英]Insert/Update multiple records in one Eloquent Laravel query
用角色創建和更新來處理新用戶的最干凈的方法是什么? 我得到了具有以下關系的“用戶和角色”表:$ this-> belongsToMany(Role :: class)。 當我創建新用戶時,我想以相同的形式分配角色,但是角色將添加到其他表中。 與更新用戶時相同,也許我將添加其他角色,或者可能需要刪除一些角色,在更新方案中,我需要查看表中存在哪些角色並將其與表單同步數據。 以下是更新用戶和角色信息的功能。 用戶更新有效,但角色更新無效。 最干凈的代碼是什么:創建具有一個或多個角色的新用戶,並更新用戶信息並同步角色信息。
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');
}
要更新角色,您可以嘗試以下方式:
$user->save();
$user->roles()->sync($request->roles);
它將同時用於更新和創建。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.