猿问

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

我正在尝试在购买后更新 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();

}


慕工程0101907
浏览 153回答 2
2回答

繁花如伊

所以你的代码有一些问题://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 时列值不会改变

梵蒂冈之花

非常感谢,我像你的例子一样解决了我的问题,但使用 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();         }  
随时随地看视频慕课网APP
我要回答