Laravel whereHas is works as INNER JOIN?

Viewed 4704

I use whereHas in Laravel to build query:

})->whereHas('results', function ($query) use ($issued, $mode, $request) {

            if (($request->get("filter"))) {
                $query->where('issued', 0);
            }

        })->orderBy('created_at', 'desc')->paginate();

This quesry returns zero rows because there are now rows in table results for

 $query->where('issued', 0);

How to do that whereHas works as LEFT JOIN? Now it works as INNER JOIN

1 Answers

whereHas only returns models that have the relation you are looking for. If you just want to limit the Results that are returned, try with:

$models = Model::with(['results' => function($query){

    $query->where('issued', 0);

}])->get();
Related