1
votes

Dans laravel comment un super utilisateur pour mettre à jour un utilisateur spécifique avec un identifiant d'utilisateur

Je crée une section d'administration dans laquelle le super utilisateur doit modifier les détails d'un autre utilisateur avec un identifiant spécifique. Comme User :: create, comment puis-je mettre à jour les détails de l'utilisateur?

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
}


1 commentaires

3 Réponses :


4
votes

Il y a quelques options:

En voici une:

 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();

Une autre façon serait:

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']),                    
      ]);     
}

La première façon de mettre à jour en une seule requête est donc plus rapide, mais la deuxième méthode déclenchera les événements du modèle comme enregistrement et mise à jour , alors choisissez ce dont vous avez besoin.


0 commentaires

0
votes

Vous pouvez essayer:

$user= User::firstOrCreate(
['unique_field_name' => 'value'], 
['name' => $data['name'],
'lastname' => $data['lastname']]

);

nom de champ unique comme e-mail ou identifiant d'utilisateur ou numéro de téléphone portable qui sont des champs uniques dans votre base de données


0 commentaires

0
votes
User::updateOrCreate(array('user_id' => $user_id), [
    'name' => $data['name'],
    'lastname' => $data['lastname'],
    'email' => $data['email'],
    'mobile' => $data['mobile'],
    'role' => $data['role'],
    'password' => Hash::make($data['password']),    
]);

0 commentaires