У вас есть несколько вариантов. Если вы хотите использовать красноречив, первый заставить пользователя:
$user = User::find(2);
или, если id
не имя вашей колонки ID:
$user = User::where('user_id', 2)->first();
обновит:
$user->user_counter = $user->user_counter == 0 ? 0 : 1;
$user->user_live_counter = $user->user_live_counter == 0 ? 0 : 1;
$user->save();
или даже это будет работать (хотя, по моему мнению, это, по-моему, не так чисто):
$user->update([
'user_counter' => $user->user_counter == 0 ? 0 : 1,
'user_live_counter' => $user->user_live_counter == 0 ? 0 : 1,
]);
Другим интересным способом может быть использование Eloquent's Mutators.
Вы также можете просто написать необработанный запрос с использованием фасада DB:
$updatedUser = DB::statement("
UPDATE
users
SET
user_counter = CASE WHEN user_counter = 0 THEN 0 ELSE user_counter + 1 END,
user_live_counter = CASE WHEN user_live_counter = 0 THEN 0 ELSE user_live_counter + 1 END
WHERE
user_id = 2;
");
Почему этот помеченный тегом Laravel 5.2, но 5.3 находится в заголовке вопроса? Что он? – ceejayoz