Как сделать это лучше в PHP Laravel - PullRequest
0 голосов
/ 03 июня 2018

Например, у меня есть 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, если предложение таким образом

Ответы [ 2 ]

0 голосов
/ 04 июня 2018
$user = User::find($id);

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

$user->save();
0 голосов
/ 03 июня 2018

1 решение (один запрос в дБ)

$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 решение (два запроса в дБ, один для поиска пользователя, второй для обновления пользователя)

$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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...