首页 > 解决方案 > 在 laravel 中,超级用户如何使用用户 ID 更新特定用户

问题描述

我正在创建一个管理部分,超级用户需要在其中编辑具有特定 ID 的另一个用户详细信息。像 User::create 一样,如何更新用户详细信息?

if( empty($user_id) ){
    User::create([
        'name' => $data['name'],
        'lastname' => $data['lastname'],
        'email' => $data['email'],
        'mobile' => $data['mobile'],
        'role' => $data['role'],
        'password' => Hash::make($data['password']),                    
    ]);     
}else{                                                       
    //update user details
}

标签: phplaravel

解决方案


有几个选择:

这是一个:

if (empty($user_id) ){
      User::create([
         'name' => $data['name'],
         'lastname' => $data['lastname'],
         'email' => $data['email'],
         'mobile' => $data['mobile'],
         'role' => $data['role'],
         'password' => Hash::make($data['password']),                    
      ]);

} else{                                                       
      User::where('id', $user_id)->update([
         'name' => $data['name'],
         'lastname' => $data['lastname'],
         'email' => $data['email'],
         'mobile' => $data['mobile'],
         'role' => $data['role'],
         'password' => Hash::make($data['password']),                    
      ]);     
}

另一种方法是:

 User::find($user_id)->fill([
    'name' => $data['name'],
    'lastname' => $data['lastname'],
    'email' => $data['email'],
    'mobile' => $data['mobile'],
    'role' => $data['role'],
    'password' => Hash::make($data['password']),                    
 ])->save();

第一种方式在单个查询中进行更新,因此速度更快,但第二种方式将触发模型事件savingupdating因此选择您需要的内容。


推荐阅读