如何在PHP Laravel中做得更好

时间:2018-06-03 19:56:08

标签: php laravel

例如,我有5个级别,如初学者,聪明人,天才等用户。

每个等级都有自己的分数系统。我是否想以正确的方式实现它?

if ($score > 10) {
    $user = User::find($id);
    $user->ranks = 'beginner';
    $user->save();
}
if ($score > 20) {
    $user = User::find($id);
    $user->ranks = 'smarty';
    $user->save();
}
以这种方式

和另外3个if子句

2 个答案:

答案 0 :(得分:1)

1个解决方案(db中的一个请求)

$data = []; 

if ($score > 10) {
    $data['ranks'] = 'beginner';
} elseif ($score > 20) {
    $data['ranks'] = 'smarty';
} elseif ('condition') {
    $data['ranks'] = 'new value';
} else {
    $data['ranks'] = 'default value';
}

User::where('id', $id)->update($data);

2解决方案(db中有两个请求,一个用于查找用户,第二个用于更新用户)

$ranks = '';
if ($score > 10) {
    $ranks = 'beginner'
} elseif ($score > 20) {
    $ranks = 'smarty'
} elseif('condition') {
    $ranks = 'new value'
} else {
    $ranks = 'default value'
}

$user = User::find($id);
$user->ranks = $ranks;
$user->save();

答案 1 :(得分:1)

$user = User::find($id);

if ($score > 40) {
    $user->ranks = 'genius';
} elseif ($score > 30){
    $user->ranks = 'smarty';
}   
...

$user->save();