2017-09-10 3 views
1

Ich entwickle ein Paket. Es gibt Zeiten, in denen ich mit einem Benutzerobjekt interagieren muss. Für einen bestimmten Fall kann ich durch die Auth::user() gehen; Für andere brauche ich jedoch den Klassennamen. Zum Beispiel App\User, wenn Sie das Basismodell verwenden.Laravel 5.5: Get Model ohne Kenntnis der App-Struktur?

Momentan verwende ich die Datei config des Pakets, um dies zu tun. Im Grunde, Sie $ php artisan vendor:publish das Paket und legen Sie den Klassennamen dort, wenn es nicht der Standardwert App\User ist.

Ich bin neugierig, ob es einen anderen Weg gibt?

Wie durch den Tabellennamen oder etwas ähnliches.

Hinweis: Zugegebenermaßen strecke ich gerade die Grenzen meines Laravel-Wissens aus; Also, Entschuldigung, wenn das ganz einfach ist.

Antwort

1

Sie könnten, nehme ich an, Laravels eigene Konfiguration lesen, die in der config/auth.php Datei gefunden wurde, vorausgesetzt, dass der Benutzer die relevanten Standardwerte verwendet.

Man könnte es mit lesen:

config('auth.providers.users.model'); 

Wenn ein Benutzer die Standardmodellklasse Namen ändern, das ist, wo sie in der Regel für Laravel Authentifizierungssystem ändern würden aus dem Kasten heraus zu arbeiten. Also ich würde es zuerst versuchen.

+0

Das scheint den Trick zu tun. Vielen Dank! Habe die Konfiguration komplett vergessen - obwohl ich sie selbst benutzt habe. ;) –

+1

Keine Sorge, froh, dass es geholfen hat. Das machen wir alle hin und wieder! :] – Jonathon