Laravel like where, orWhere

Делаю поиск по базе, хочу, чтоб дал результат по первым параметрам, то есть, сначала дать все совпадения с title, потом после этого - совпадения с full. Пробовал через where and orWhere, не получилось.

$ads = $ads->where('title', 'LIKE', '%' . $request->input('q') . '%')->where('status','active')->orWhere('full', 'LIKE', '%' . $request->input('q') . '%')->where('status','active');

Ответы (1 шт):

Автор решения: Ivan Dudarev
<?php

$term = '%' . $request->input('q') . '%';
$ads = $ads
    ->where(function ($query) use ($term) {
        $query
            ->where('title', 'LIKE', $term)
            ->orWhere('full', 'LIKE', $term)
        ;
    })
    ->where('status','active')
;
→ Ссылка