簡體   English   中英

在一個雄辯的Laravel查詢中插入/更新多個記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM