Vielen Dank für Ihre Zeit im Voraus. Springe zum fettgedruckten Teil, wenn du es eilig hast.Laravel 5.3 Eloquent Modell Dynamische Tabelle Eigenschaft
Ich habe einen folgenden Anwendungsfall: Jeder Benutzer der App verwendet seine eigene Reihe von Präfix-Tabellen für Eloquent-Modelle (z. B. Invoice.php für code_invoices und Client.php für code_clients). Die Präfixe sind in der Benutzertabelle definiert (z. B. users.code). In Laravel 5.2 konnte ich leicht die Eigenschaft $ table des Eloquent-Modells setzen, indem ich die Variable config (oder session) zur Laufzeit nach der Anmeldung des Benutzers lese. Alles funktionierte, einschließlich der Relationen.
Nach dem 5.3-Update gibt jedoch ein zur Laufzeit festgelegter Konfigurationswert jetzt null im Objekt zurück (wie auch der Sitzungswert). Ich weiß aus den Dokumenten, dass die Sitzung im Konstruktor jetzt nicht verfügbar ist, und die vorgeschlagene Problemumgehung ist die Middleware-Schließung, aber Eloquent-Klassen können die Middleware-Schließung nicht verwenden, da sie einen nicht definierten Methodenfehler zurückgibt.
Also meine Frage ist zweifach: Wie kann ich dynamisch die $ table -Eigenschaft des Eloquent setzen und/oder lese ich die Laufzeitkonfigurationswerte im Modell.
Jede Hilfe würde sehr geschätzt werden.
EDIT: Ich bin in der Lage, eine Tabelle für das Modell mit der from()
Methode anzugeben. Dies funktioniert: $model = \App\ModelName::from('prefix_table')->first();
Aber mein wirkliches Problem ist Beziehungen. Dies funktioniert nicht: $model = \App\ModelName::from('prefix_table')->with('relatedModel')->first()
nicht, weil das verwandte Modell nicht weiß, welche Tabelle Präfix verwendet werden soll.
Interessant, nicht wahr? :)
Vielleicht könnte 'DB :: setTablePrefix ($ prefix)' in diesem Fall nützlich sein. – geoandri