Meine Codes:Laravel Pivot Column Filtering
$course = Course::find(1);
$teachers = $course->Users()->where('role_id', 1)->get();
$students = $course->Users()->where('role_id', 2)->get();
Bei dieser Lösung habe ich zwei verschiedene Benutzertypen. Die Funktion "users()" ist eine "goesToMany" -Beziehung.
public function Users()
{
return $this->belongsToMany(User::class, 'course_users')->withPivot('role_id');
}
Und meine course_users Tabellenspalten: user_id, course_id, ROLE_ID
richtig läuft Diese Codes.
Aber als ich auf Abfragen schaute, sah ich zwei SQL-Abfragen für diese Situation. Ich möchte nur eine Abfrage verwenden und nur gefilterte Werte zu geeigneten Variablen für die Leistung abrufen. Wie kann ich es tun?
Ich versuchte unter dem Code. Aber es werden nur die ersten variablen $ Lehrer, aber nicht die $ Schüler gewonnen.
$users = $course->Users();
$teachers = $users->where('role_id', 1)->get();
$students = $users->where('role_id', 2)->get();
Was sind Ihre Meinungen? Danke.
ich versuchte das, $ users, die 3 Einzelteile holen. aber $ lehrer und $ studenten sind leer. Was kann das Problem noch sein? – Cem