Sie können tun, als @rmobis in seiner Antwort festgelegt hat, [Hinzufügen von etwas mehr hinein]
order by
Mit zweimal:
MyTable::orderBy('coloumn1', 'DESC')
->orderBy('coloumn2', 'ASC')
->get();
und der sek ond Art und Weise zu tun, ist es,
raw order by
Verwendung:
MyTable::orderByRaw("coloumn1 DESC, coloumn2 ASC");
->get();
Beide werden gleiche Abfrage produzieren wie folgen,
SELECT * FROM `my_tables` ORDER BY `coloumn1` DESC, `coloumn2` ASC
Wie @rmobis in Kommentar der ersten Antwort angegeben Sie können Pass wie ein Array, um nach Spalte so zu bestellen,
$myTable->orders = array(
array('column' => 'coloumn1', 'direction' => 'desc'),
array('column' => 'coloumn2', 'direction' => 'asc')
);
eine weitere Möglichkeit ist es iterate
in Schleife zu tun,
$query = DB::table('my_tables');
foreach ($request->get('order_by_columns') as $column => $direction) {
$query->orderBy($column, $direction);
}
$results = $query->get();
Hoffe, es hilft :)
Es wäre schön, wenn wir ein Array wie passieren könnte: 'User :: orderBy (array (‘ name '=>' desc ',' email '=>' asc ')) ' – JoshuaDavid
@FireCoding, du kannst' $ user-> orders = array (array (' spalte '=>' name ',' direction '= > 'desc'), array ('column' => 'email', 'direction' => 'asc')); ' – rmobis
Gibt es eine Möglichkeit, eine OrderBy zu einer bestehenden Anfrage hinzuzufügen? – Rafael