Search code examples
laravellaravel-5laravel-5.3

How to use where conditional in with Laravel?


I do request using query:

return Baber::where(function ($query) use ($request) {

    // HERE CONDITION WHERE FOR USER TABLE

})->with("user")->orderBy('id', 'desc')->get();

How can I use where() inside query, that it will be comparabled with user table in with("user")?

I mean the following:

return Baber::where(function ($query) use ($request) {

        $query->where('user.created_at', $request->date);

    })->with("user")->orderBy('id', 'desc')->get();

Solution

  • It's known as constraining eager loads.

    Baber::with(['user' => function ($query) use ($request) {
        $query->where('user.created_at', '=', $request->date);
    }])
    ->orderBy('id', 'desc')
    ->get();