Вы можете сделать так, как @rmobis указал в своем ответе: [Добавляя что-то еще]
Использование order by
дважды:
MyTable::orderBy('coloumn1', 'DESC')
->orderBy('coloumn2', 'ASC')
->get();
и второй способ сделать это:
Использование raw order by
:
MyTable::orderByRaw("coloumn1 DESC, coloumn2 ASC");
->get();
Оба будут производить такой же запрос, как показано ниже,
SELECT * FROM `my_tables` ORDER BY `coloumn1` DESC, `coloumn2` ASC
Как указано в @rmobis в комментарии к первому ответу, вы можете передать как массив для сортировки по столбцам следующим образом:
$myTable->orders = array(
array('column' => 'coloumn1', 'direction' => 'desc'),
array('column' => 'coloumn2', 'direction' => 'asc')
);
еще один способ сделать это iterate
в цикле,
$query = DB::table('my_tables');
foreach ($request->get('order_by_columns') as $column => $direction) {
$query->orderBy($column, $direction);
}
$results = $query->get();
Надеюсь, это поможет :)
person
Sagar Naliyapara
schedule
25.04.2017
User::orderBy('name', 'DESC') ->orderBy('email', 'ASC') ->get();
- person I am the Most Stupid Person   schedule 29.03.2018