为了账号安全,请及时绑定邮箱和手机立即绑定

我如何使用 Model::factory() 更新用户积分

我如何使用 Model::factory() 更新用户积分

PHP
慕工程0101907 2021-11-26 14:43:37
我正在尝试在购买后更新 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();}
查看完整描述

2 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

所以你的代码有一些问题:


//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 时列值不会改变


查看完整回答
反对 回复 2021-11-26
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

非常感谢,我像你的例子一样解决了我的问题,但使用 Model::factory(); 例子:


    //SET USER CREDIT 

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

    if (isset($set_credit)){

        $set_credit->credits = $set_credit->credits + 15;

        $set_credit->save();

         }  


查看完整回答
反对 回复 2021-11-26
  • 2 回答
  • 0 关注
  • 144 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信