Подтвердить что ты не робот

Как выбрать счетчик с помощью встроенного конструктора запросов Laravel?

Вот мой запрос с использованием свободного конструктора запросов.

    $query = DB::table('category_issue')
        ->select('issues.*')
        ->where('category_id', '=', 1)
        ->join('issues', 'category_issue.issue_id', '=', 'issues.id')
        ->left_join('issue_subscriptions', 'issues.id', '=', 'issue_subscriptions.issue_id')
        ->group_by('issues.id')
        ->order_by(DB::raw('COUNT(issue_subscriptions.issue_id)'), 'desc')
        ->get();

Как вы можете видеть, я заказываю счет из объединенной таблицы. Это работает нормально. Тем не менее, я хочу, чтобы этот счет возвращался с моими выборами.

Вот мой сырой сиквел-запрос, который отлично работает.

Select issues.*, COUNT(issue_subscriptions.issue_id) AS followers 
FROM category_issue JOIN Issues ON category_issue.issue_id = issues.id 
LEFT JOIN issue_subscriptions ON issues.id = issue_subscriptions.issue_id
WHERE category_issue.category_id = 1
GROUP BY issues.id
ORDER BY followers DESC

Как я могу это сделать, используя Larvel свободно построитель запросов? Я знаю, что могу использовать необработанный sql-запрос, но я хотел бы избежать этого, если это возможно. Любая помощь будет оценена, спасибо заранее!

4b9b3361

Ответ 1

Вы можете использовать массив в select() для определения большего количества столбцов, и вы можете использовать DB:: raw() там с наложением его на последователей. Должно выглядеть так:

$query = DB::table('category_issue')
    ->select(array('issues.*', DB::raw('COUNT(issue_subscriptions.issue_id) as followers')))
    ->where('category_id', '=', 1)
    ->join('issues', 'category_issue.issue_id', '=', 'issues.id')
    ->left_join('issue_subscriptions', 'issues.id', '=', 'issue_subscriptions.issue_id')
    ->group_by('issues.id')
    ->order_by('followers', 'desc')
    ->get();

Ответ 2

$count = DB::table('category_issue')->count();

предоставит вам количество элементов.

Для получения более подробной информации проверьте Свободный конструктор запросов в красивой документации Laravel.