Aus dieser Frage: How to GROUP and SUM a pivot table column in Eloquent relationship?Laravel - Eloquent Beziehung belongsToMany groupBy "Syntaxfehler oder Zugriffsverletzung" Fehler
ich diesen Code verwenden in meinem User
Modell:
public function teams() {
return $this->belongsToMany('App\Models\Team', 'team_members', 'user_id', 'team_id')
->groupBy('pivot_team_id');
}
wollte ich ->groupBy()
verwenden, weil in meinem team
s, ein einzelnes user
kann als mehrere team_member
s für verschiedene Rollen fungieren. Ich möchte nicht team
Datensätze duplizieren.
Aber wenn ich versuche, z. mit diesem Code auf meiner Seite dd(Auth::user()->teams)
, Laravel die folgende Ausnahme ausgelöst hat:
SQLSTATE[42000]: Syntax error or access violation: 1055 'laravel.teams.id' isn't in GROUP BY (SQL: select `teams`.*, `team_members`.`user_id` as `pivot_user_id`, `team_members`.`team_id` as `pivot_team_id` from `teams` inner join `team_members` on `teams`.`id` = `team_members`.`team_id` where `team_members`.`user_id` = 3 group by `pivot_team_id`)
Dann versuchte ich von mir, dass genau die gleiche SQL in dem Fehler ausgeführt wird, es funktionierte:
Warum ist das so? Und wo habe ich es falsch verstanden?
Sehen Sie, ob dies hilft - https://github.com/barryvdh/laravel-translation-manager/issues/144 – ayip
@ayip Es funktioniert jetzt, aber es scheint wie ein Hack. Es muss einen Weg geben, dies zu tun, ohne die ganze Gruppe zu deaktivieren –