Ich habe eine Beziehung in meiner Benutzertabelle namens "Rollen".Laravel whereHat nicht wie erwartet funktioniert
Diese Beziehung ist:
public function roles()
{
return $this->hasMany('App\RoleUser');
}
ich nur versuchen, Benutzer zu holen, die eine Rolle von 3.
Meine Anfrage haben wird:
User::where('name', $name)
->orWhere('email', $email)
->whereHas('roles', function ($q) {
$q->where('id', 3);
})->get();
Dies ist jedoch zurückkehrt alle Benutzer unabhängig von ihrer Rolle. Ich kann bestätigen, dass alle Benutzer Rollen haben und die Rollenbeziehung funktioniert.
Die Felder in der Tabelle role_user sind ‚id‘, ‚user_id‘
Sie müssen dies versuchen: '$ role_id = 3; Benutzer :: whereHas ('Rollen', Funktion ($ q) verwenden ($ role_id) { $ q-> wo ('id', $ role_id); }) -> get(); ' –
@HirenGohel Siehe mein bearbeite und kommentiere meine Antwort gepostet. Dein Kommentar ist eine funktionierende Lösung, aber mein WhereHas war auch in seinem Zustand, aber der Rest des Codes hatte ein Problem. – Lovelock
Sie meinen also, dass Ihre 'orWhere' Bedingung nicht richtig funktioniert ?? –