Besoin d'aide ?

Filtrage d'une requête sur la valeur d'une table pivot

Avatar de KYoann
KYoann

Bonjour à tous.

J'ai deux tables reliées par une table pivot.

Cette table pivot contient des champs personnalisées tel que created_at et updated_at.

Dans la définition du model de chacune de mes tables j'ai précisé ces champs pour les deux sens

return $this->belongsToMany('App\user', 'rdv_user','user_id','rdv_id')->withPivot('created_at','updated_at');
return $this->belongsToMany('App\rdv', 'rdv_user','rdv_id','user_id')->withPivot('created_at','updated_at');

Maintenant j'ai besoin de récupérer la liste des rendez vous enregistrer entre deux date (de la dernière connexion au site à aujourd'hui)

En lisant la documentation, je n'arrive pas à comprendre si je dois ajouter d'autre précision à la définition des models, par ici https://laravel.com/docs/6.x/eloquent-relationships#defining-custom-intermediate-table-models

Merci pour le coup de pouce !

Posté il y a 8 mois
Avatar de KYoann
KYoann

A force de bidouiller j'ai trouvé cette solution :

$maintenant = date('Y-m-d H:i:s');
$last_last_login_at = Auth::user()->last_last_login_at;
$utilisateurs = User::whereHas('rdv', function ($query) use ($maintenant,$last_last_login_at){

    $query->whereBetween('rdv_user.created_at',[$last_last_login_at,$maintenant]);

})->get();

Je m'obstiner à essayer de placer le whereBetween en dehors du WhereHas, alor qu'a l'intérieur ca marche :)

Posté il y a 8 mois

Vous ne pouvez pas répondre à ce sujet.