Здесь перечислены элементы массива
: number [] = [];
Есть несколько вариантов:
Вот один из них:
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();
Первый способ - это обновление за один раз. запрос выполняется быстрее, но второй способ вызовет события модели, такие как saving
и updating
, поэтому выберите то, что вам нужно.
Вы можете попробовать:
$user= User::firstOrCreate(
['unique_field_name' => 'value'],
['name' => $data['name'],
'lastname' => $data['lastname']]
);
уникальное имя поля в качестве адреса электронной почты, идентификатора пользователя или номера мобильного телефона, которые являются уникальными полями в вашей базе данных
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']),
]);