Ich habe SonataAdminBundle, SonataUserBundle und FOSUserBundle sowie CoopTilleulsAclSonataAdminExtensionBundle installiert, während ich die ACL im SonataAdminBundle verwende.
Die Einträge werden von den Eigentümern gefiltert und alles ist in Ordnung. Kunde A kann nur seine Artikel sehen, Kunde b auch nur seine. Aber wenn ich ein neues Objekt erstelle, kann ich auch Artikel anderer Kunden sehen.
Nehmen wir an, ein Kunde kann Gruppen erstellen, mit denen Produkte zugeordnet werden. Dies geschieht beim Erstellen eines Produkts als Dropdown-Liste (Viele-zu-eins-Beziehung in der Produktansicht). Aber ich kann auch Gruppen sehen, die von einem anderen Kunden erstellt wurden.
Wie kann ich das filtern? Ich denke, ich muss in der ProductsAdmin.php filtern. Oder muss es in der ProductsRepository.php passieren? Ich kann bis jetzt keine Hinweise in den Dokumenten finden und würde jede Art von Hinweis oder Link schätzen, wo ich Informationen dafür finden kann.
Sie müssen entweder die Vorlage für Bearbeitungszweige überschreiben oder ein benutzerdefiniertes Auswahlfeld erstellen. Siehe diese Frage zum Überschreiben. Ich kenne Ihre Entity-Struktur nicht, aber der Prozess sollte wie
gehen %Vor%Benutzerdefinierte Abfrage in der Admin-Klasse wie
auswählen %Vor%Tags und Links symfony sonata-admin sonata