我想在购买后更新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时该列的值不变