Как сделать заказ OrderBy в Laravel - PullRequest
1 голос
/ 25 марта 2020

Я хотел сделать пользовательский заказ на marketing_status_id в этом:

$prospect = $this->filterProspect($request->all())
            ->select([
                'student_marketings.*',
                'students.name',
                'students.identification_type_id',
            ])
            ->distinct('student_marketings.id')
            ->orderBy('student_marketings.marketing_status_id');

Как заказать в этой последовательности: ('marketing_status_id', 5, 20, 4, 1, 3, 18, 6)?

1 Ответ

3 голосов
/ 25 марта 2020

Использовать mysql встроенный метод field(), например:

$prospect = $this->filterProspect($request->all())
            ->select([
                'student_marketings.*',
                'students.name',
                'students.identification_type_id',
            ])
            ->distinct('student_marketings.id')
            ->orderBy(DB::raw('FIELD(marketing_status_id, 5, 20, 4, 1, 3, 18, 6)'));
...