在我的网站中,我有用户可以创建帖子,制作说明,上传个人资料照片,提供电子邮件地址等
我想给用户一个分数'或者'排名'取决于他们更新帐户的程度。例如,提供个人资料图片将是+10分,长期描述将是+5分,使得帖子将是+2分等等。
我将有一个用户模型方法,在执行时更新其分数并将其添加到users表中的列。
有人建议我使用cron作业,每天更新一次,而不是每次用户更改帐户时都更新。
我想知道最佳做法是什么,以及我应该在哪里存储用户的得分#39;
答案 0 :(得分:0)
肯定会使用已经由Laravel预定义的模型事件。
https://laravel.com/docs/5.4/eloquent#events
所以类似于此,每次保存用户时,我们都会更新分数。
User::saved(function($user){
$user->calculateScore();
$user->save();
});
此代码需要放在AppServiceProviders引导方法中。
在你的情况下,这是最好的做法,你在我的诚实意见中,不用担心你可以计算得分,每次你在网上显示,复杂的计算不能。