Код: Выделить всё
│ id │ quantity │ high_level_warning │ low_level_warning
────┼────┼──────────┼────────────────────┼───────────────────
1 │ 3 │ 4 │ │ 0
2 │ 4 │ 7 │ │ 0
3 │ 5 │ 2 │ │ 1
4 │ 6 │ 1 │ │ 0
5 │ 8 │ 6 │ │ 0
6 │ 9 │ 1 │ │ 0
7 │ 10 │ 0 │ │ 0
8 │ 11 │ 3 │ │ 0
9 │ 12 │ 2 │ │ 0
10 │ 2 │ 1 │ 42 │ 12
11 │ 13 │ 49 │ 150 │ 50
12 │ 7 │ 1 │ │ 10
13 │ 14 │ 100 │ 50 │ 10
->when(isset($filters['filter_stock']), function ($query) use ($filters) {
switch ($filters['filter_stock']) {
case 'low':
$query->whereColumn('quantity', '=', 'high_level_warning');
break;
}
})
< /code>
, который работает как и ожидалось, но мы также хотели сделать сортировщик, где порог почти достигается. Итак, элементы, которые еще не находятся ниже или выше своего порога, но близко к нему. ->when($filters['filter_sort_by'], function ($query, $filter): void {
switch ($filter) {
// other cases
case 'low_stock':
$query->orderByRaw('ABS(quantity - low_level_warning)');
break;
case 'high_stock':
$query->orderByRaw('ABS(high_level_warning - quantity)');
break;
}
< /code>
Но это не является действительным способом сделать это. У кого -нибудь есть идеи о том, как эта сортировка будет работать в Ларавеле?
Подробнее здесь: https://stackoverflow.com/questions/795 ... ted-values
Мобильная версия