#php #laravel
#php #laravel
Вопрос:
У меня есть таблица, как показано ниже. Я хочу выбрать количество на основе числа, введенного пользователем. Например, если пользователь вводит 10, выбранное количество должно быть 2. Это легко получить. Но когда пользователь вводит 20 или 30, я хочу выбрать количество 10, которое равно 2, поскольку 20 или 30 меньше 40.
С моим приведенным ниже запросом, когда пользователь вводит 60, он выбирает количество 10, которое равно (2). Как я могу сделать это лучше?
Number Count
10 2
40 10
60 20
Контроллер
$count = PriceRate::where('number','<=',$amount)->first();
return $count;
Комментарии:
1. попробуйте это
$count = PriceRate::where('number','<=',$amount)->orderByDesc('number')->limit(1)->first();
Ответ №1:
попробуйте это:
$count = PriceRate::where('number','<=',$amount)->orderByDesc('number')->limit(1)->first();
Ответ №2:
я думаю, что этот код поможет вам:
$count_array = [];
$user_type;
$Rates= PriceRate::all();
foreach ($Rates as $rate){
if ($rate->number <= $user_type){
array_push($count_array,$user);
}
}
я объясню, что происходит
1-вам нужен массив для ваших подсчетов -$count_array
2-ваш тип пользователя
3-вы получаете все записи из своей таблицы
4-вы перебираете их и проверяете для каждого из них, если его число равно или меньше, чем ваш user_type вы отправляете эту запись в свой count_array
теперь у вас есть массив с записями из вашей БД, число которых меньше вашего user_type
редактировать: если вы хотите использовать только первый, вы можете прервать цикл после array_push