Laravel 5

Eloquent : ajouter un where d'une sous relation

Avatar de VincentPIEPLU
VincentPIEPLU

Bonjour,

J'aurais besoin de recherche des locations avec la conditon que region_id = X Sauf que region_id n'est pas dans locations, mais bien entendu dans regions.

Pour accéder de location->region, j'ai plusieurs relation

location -> city -> department -> region.

J'ai testé plusieurs trucs, en vain, comme ce genre de requête :

$locations = \App\Model\Location::where('city.department.region.region_id', 1)->orderBy('id', 'desc')->paginate(10);

Auriez vous une idée ?

Merci

Posté il y a 3 ans
Avatar de bestmomo
bestmomo

Bonjour,

Dans ce cas c'est un whereHas qu'il faut, pas un where.

Posté il y a 3 ans
Avatar de VincentPIEPLU
VincentPIEPLU

Top bestmomo !!!!

La solution complète si ca peut aider un jour quelqu'un ;)

$locations = \App\Model\Location::whereHas('city', function($query) {
            $query->whereHas('department', function($query) {
                $query->whereHas('region', function($query) {
                    $query->where('region_id', 5);
                });
            });
        })->orderBy('id', 'desc')->paginate(10);
Posté il y a 3 ans
Avatar de bestmomo
bestmomo

Tu as essayé comme ça ?

$locations = \App\Model\Location::whereHas('city.department.region', function($query) {
    $query->where('region_id', 5);
})->latest('id')->paginate(10);
Posté il y a 3 ans

Vous ne pouvez pas répondre à ce sujet.