Can't Properly Convert raw SQL to use Eloquent Query
I tried to convert this line of code in various ways in Laravel, but I can not succeed.
SELECT m.marka_naziv, COUNT(t.marka_id) AS broj
FROM tehnicki_pregledi AS t
INNER JOIN marke AS m ON(t.marka_id = m.id)
WHERE t.active = 1 AND
DATE(t.datum_pregleda) BETWEEN DATE('2017-01-01') AND DATE ('2017-02-01')
GROUP BY t.marka_id
ORDER BY COUNT(t.marka_id) DESC
LIMIT 10
I tried it like this:
q1 = DB::table('tehnicki_pregledi')
->select('m.marka_naziv')
->select(DB::raw('COUNT(t.marka_id) AS broj'))
->from('tehnicki_pregledi AS t')
->join('marke AS m', function($join) {
$join->on(DB::raw('(t.marka_id = m.id)' ));
})
->where('t.active', '=', 1)
->where(DB::raw('DATE(datum_pregleda) >= DATE("'.date_format($startMonth,'Y-m-d H:i:s').'") AND DATE(datum_pregleda) <= DATE("'.date_format($endMonth,'Y-m-d H:i:s').'")'))
->groupBy('t.marka_id')
->orderByRaw('broj DESC')
->limit(10)
->get();