Сделать порядок отображения на основе другого значения таблицы

У меня две таблицы request а также status_tracker, Я хочу перечислить строку сверху, которая имеет только одну запись в трекере состояния.

У меня есть запрос в $user=DB::table('request')->select('request.*)->get();

Я хочу добавить заказ на основе status_tracker Таблица. Если request_id имеет счет '2' в status_tracker таблица, которую я хочу отобразить в верхней части таблицы

 $user=DB::table('request')->select('request.*)(order may happened here)->get();

если ID 19,11,15 имеет 2 в status_tracker он должен отображаться первым, а остальные из них будут отображаться ниже как 19,11,15,18,17,16,14,13,12,10.

Возможно ли при заказе строки, основанной на другом поле таблицы таблицы в laravel?

1 ответ

Вы можете использовать 'withCount', который добавит столбец с именем {relation}_count и закажите, так что попробуйте что-то вроде этого:

$user = App\Request::withCount('status_tracker')
           ->orderBy('status_tracker_count', 'desc')
           ->get();

Вы можете прочитать больше об этом на официальных документах Laravel.

Примечание. Для того, чтобы это работало, ваши модельные отношения должны быть четко установлены, поэтому убедитесь, что вы указали отношения между обеими таблицами:D

Другие вопросы по тегам