Красноречивый: порядок по сумме двух столбцов - PullRequest
0 голосов
/ 12 апреля 2020

Мой рабочий SQL запрос выглядит следующим образом:

SELECT post_id
FROM news_tags  
ORDER BY  (link_clicks+views) DESC

То, что я до сих пор пробовал в eloquent, выглядит так:

$newsTagSaved = NewsTag::
                orderBy(DB::raw("`views` + `link_clicks`"), 'desc')
                ->paginate(12)
                ->pluck('post_id');

В таблице Newstag много столбцов и views и link_clicks - это два из них. Теперь я пытаюсь получить заказ post_id по сумме просмотров c и link_click.

Как я могу сделать это в Laravel eloquent?

Спасибо!

1 Ответ

0 голосов
/ 13 апреля 2020

Сделайте что-то вроде этого:

$newsTagSaved = NewsTag::select(DB::raw('views + link_clicks as score'))
    ->orderBy('score', 'desc')
    ->get();
dd($newsTagSaved);

Это вернет только значение score. Если вы хотите вернуть другие поля, просто добавьте их в select. Как пример:

$newsTagSaved = NewsTag::select(
    DB::raw('views + link_clicks as score'),
    'title',
    'created_at'
)
    ->orderBy('score', 'desc')
    ->get();
dd($newsTagSaved);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...