I am trying to implement this query in Laravel
"SELECT * FROM jobs
WHERE status = 1 AND
taskerCount = (SELECT count(*) FROM jobRequests WHERE status = 1 AND job_id =
jobs.id)"
This is what i have tried;
Auth::user()->jobs
->where('status', 1)
->where('taskerCount', function ($q) {
$q->where('status', 1)
->where('job_id', $q->id)->count();
});
But I get the error:
Object of class Closure could not be converted to int.
Use a raw expression instead of -count().
You can view this documentation here
Example of a raw query from laravel:
$users = DB::table('users')
->select(DB::raw('count(*) as user_count, status'))
->where('status', '<>', 1)
->groupBy('status')
->get();
Make sure you define the count as a name.