как orderBy () на основе суммы специального столбца в таблице отношений laravel я получаю провайдера - PullRequest
0 голосов
/ 26 октября 2019

заказ, основанный на сумме специальной цены в таблице отношений laravel I, я получаю провайдера

$providers = Provider::get();

Как это сделать, используя orderBy:

 $providers = $providers->sortByDesc(function ($provider) {
            return $provider->contents()->sum('like');
        })->take(10);

1 Ответ

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

Laravel дает вам количество связанных моделей. См. Документы

. В вашем случае отношение равно Provider hasMany Contents, поэтому счетчиком контента для каждого провайдера будет поле с именем contents_count. Вы можете использовать это для сортировки.

    $providers  = $providers::withCount('contents')
    ->orderBy('contents_count', 'DESC')
    ->take(10)
    ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...