2017-03-02 4 views
0

In unserer Anwendung werden wir Titel basierend auf ihren Punkten vergeben. Wenn ein Benutzer also 10-99 Punkte hat, erhält dieser Benutzer möglicherweise den Titel "Novice", aber ein Benutzer mit 100-199 Punkten erhält möglicherweise den Titel "Regular User". Ich plane eifrig, die Punkte eines Benutzers mit einem Attribut und einer Beziehung zu laden, und sobald ich diese Punkte habe, werde ich eine Attributmethode verwenden, um den Titel zuzuweisen.Wie speichere ich statische Daten in Laravel?

Aber wie bekomme ich die Liste der möglichen Titel?

Ich könnte ein Modell, eine Migration und eine Seed-Datei erstellen, aber ich glaube, dass diese Titel nicht viel ändern und sicherlich nie in einem API-Aufruf aktualisiert werden müssten. Ich könnte auch eine Reihe von Punkten und Titeln fest codieren und eine schnelle Suche durchführen, um zu sehen, welcher Titel einem Benutzer gehört, aber dann muss ich diese Titel irgendwie dem Benutzer in einer Attribut-Methode liefern. Oder ich könnte sie in einem Repository oder im Cache speichern.

Kann ich von einem Modell aus auf ein Repository zugreifen? Ist es besser, diese Art von Daten in einer Datenbank zu speichern, unabhängig davon, wie oft sie aktualisiert oder abgefragt wird?

Antwort

0

Sie könnten Einträge in Ihrer .env Datei verwenden, um die Einträge zu speichern und dann eine Logik in Ihrem PHP verwenden, um den richtigen .env Eintrag auszuwählen.

LEVEL_1_TITLE=Novice 
LEVEL_2_TITLE=Regular 
... 

if($user->points < 99){ 
    $title = env('LEVEL_1_TITLE'); 
} 
... 

Oder tun die gleiche Sache von einem array in einer Klasse, die Sie erstellen und wählen Sie einfach die Eingabe korrekt Array basierend auf den Punkten.

Verwandte Themen