2016-04-30 2 views
0

У меня есть одно поле с типом данных INTEGER.ORDER BY со значением INTEGER по умолчанию 0

Я хочу отобразить заказ продуктов по возрастанию.

1,2,3,4

controller.php

$products  = $this->product->getUntrashed('main_category', ucfirst($label), $limit, 'top', 'asc', $min, $max, $designers, $categories, $colors, $availability); 

public function getUntrashed($column, $value, $limit = 9, $order, $sort, $min, $max, $designers, $categories, $colors, $availability) 
{ 
return Product::where($column, $value)->whereNull('deleted_at')->where('price', '>=', $min)->where('price', '<=', $max)->where('visibility', '=', 1)->where('stock_count', '!=', 0)->where('status', '!=',0)->orderBy($order, $sort)->paginate($limit); 
} 

проблема заключается в:

со значением по умолчанию 0 Я не могу сделать это своего рода должным образом.

помощь.

ответ

0

Вы конкретно запрашиваете убывающий заказ. Спуск от наивысшего до самого низкого.

Изменить 'desc' на 'asc'.

+0

Это верно в порядке возрастания. 0 - это число, которое предшествует 1. Вы вообще не хотите, чтобы 0? – Josh

+0

нет. я хочу это как 1,2,3,4 –

+1

«Конечно нет»? Это не само собой разумеющееся. Вы должны быть намного более ясными в том, что вы просите. Я не собираюсь предполагать, что ваш случай использования вы не укажете. Добавьте '-> где ($ order, '<>', 0)' в вашу цепочку условий. – Josh

0

Я рекомендую использовать PHP для этого, но если вы действительно хотите сделать это на уровне MySQL, то вот пример

выберите * из тестового t1 порядка по числу = 0, число;

CREATE TABLE test ( id INT (11) без знака NOT NULL AUTO_INCREMENT, number INT (11) NOT NULL, ПЕРВИЧНЫЙ КЛЮЧ (id) ) Двигатель = InnoDB = Кодировка по умолчанию latin1;

INSERT INTO test (id, number) ЗНАЧЕНИЯ (1, 1), (2, 2), (3, 0), (4, 4), (5, 0);