Można zrobić jak @rmobis określił w swej odpowiedzi, [Dodawanie do niego coś więcej]
Korzystanie order by
dwukrotnie:
MyTable::orderBy('coloumn1', 'DESC')
->orderBy('coloumn2', 'ASC')
->get();
i sekunda OND sposobem na to jest,
Korzystanie raw order by
:
MyTable::orderByRaw("coloumn1 DESC, coloumn2 ASC");
->get();
Zarówno będzie produkować samo zapytanie, jak postępować,
SELECT * FROM `my_tables` ORDER BY `coloumn1` DESC, `coloumn2` ASC
Jak @rmobis podano w komentarzu do pierwszej odpowiedzi możesz przekazać jak tablicę do zamówienia przez kolumnę w ten sposób,
$myTable->orders = array(
array('column' => 'coloumn1', 'direction' => 'desc'),
array('column' => 'coloumn2', 'direction' => 'asc')
);
jeszcze jeden sposób na to jest iterate
w pętli
$query = DB::table('my_tables');
foreach ($request->get('order_by_columns') as $column => $direction) {
$query->orderBy($column, $direction);
}
$results = $query->get();
Nadzieja to pomaga :)
Byłoby miło, gdybyśmy mogli przekazać tablicę takich jak: 'użytkownika :: orderby (array (” name '=>' desc ',' email '=>' asc ')) ' – JoshuaDavid
@FireCoding, możesz zrobić' $ user-> orders = array (array (' column '=>' name ',' direction '= > 'desc'), array ('column' => 'email', 'direction' => 'asc')); ' – rmobis
Czy istnieje sposób na dodanie orderBy do ustalonego zapytania? – Rafael