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
}
3 Réponses :
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.
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
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']),
]);
laravel.com/docs/5.8/eloquent#other-creation-methods section updateOrCreate