我想在购买后更新UserCredits。因此,如果用户有10个信用点并想再购买10个信用点,那么它只会用购买的信用点覆盖旧信用点分数。
购买的积分应添加到当前积分中并保存。

//SET USER CREDIT
$set_credit = Model::factory('UserCredits')->where('email', "$email")->find_one();

if (isset($set_credit)){
$set_credit->credits = "+15";
$set_credit->save();
}

最佳答案

因此,您的代码存在一些问题:

//SET USER CREDIT
$set_credit = Model::factory('UserCredits')->where('email', "$email")->find_one();

if (isset($set_credit)){
$set_credit->credits = "+15";
$set_credit->save();
}


尝试以下方法:

  $userCredit = UserCredits::where('email', $email)->first();

  if ($userCredit){
     $userCredit->credits = $userCredit->credits + 15;
     $userCredit->save();
  }


另外,请确保Credits列为int。
模型应为单数。

正如@ceejayoz指出的那样,最好使用:

$userCredit->increment('credits', 15);


当您想向列中添加数字时,以便我们100%确保在添加$ userCredit-> credits + 15时该列的值不变

09-20 09:56