Laravel 5: как «заказать» с помощью формы Eloquent ORM существуют, чтобы не существовать по дате - PullRequest
0 голосов
/ 09 октября 2019

У меня есть таблица

id  name    publish_at    total
------------------------
1   shirt1  2000          6
2   shirt2  2019          0
3   shirt3  2010          5
4   shirt4  2019          1

Я хочу отсортировать по публикациям, а не 0 для общего количества в laravel:

Я хочу это:

shirt4
shirt3
shirt1
shirt2

Я пытаюсь это:

$query->orderBy('total', 'desc');
$query->orderBy('publish_at', 'desc');

, но сортировка по общему и для того же общего сортировки по публикации

Ответы [ 2 ]

0 голосов
/ 09 октября 2019

Использование orderByRaw ():

->orderByRaw(
 "order by CASE WHEN total>0 THEN publish_at END DESC, CASE WHEN total>0 THEN total END DESC")
0 голосов
/ 09 октября 2019

вам не нужно снова вызывать $ query

        $query = Model::all()
        ->orderBy('publish_at', 'ASC')
        ->get();
        return view('view', [
        'query ' => $query 
         ]);
...