2016-04-20 7 views
0

So habe ich einen globalen Gültigkeitsbereich auf den meisten meiner Modelle, der grundsätzlich nur Elemente mit einem record_status von 1 zurückgibt. Die Implementierung dieses globalen Gültigkeitsbereichs ist sehr ähnlich wie der Soft-Delete globaler Spielraum bei der Umsetzung.Laravel 5.2 - Einen globalen Bereich automatisch in create einbinden

Leider ist die Datenbank nicht standardmäßig auf 1 gesetzt (und ich darf sie nicht ändern), also habe ich versucht, einen Weg zu finden, denselben globalen Bereich zu verwenden, um Aufrufe zu erstellen/speichern, um record_status = 1 zu haben, falls nicht bereits definiert . Irgendwelche Ideen?

Antwort

1

Wenn Sie ein Basismodell, das andere Modell vererben haben, dann können Sie es hinzufügen:

protected $attributes = ['record_status' => 1];

Wenn Sie viel mehr Modelle haben, die den Status müssen diejenigen sein 1 als die sie benötigen, um 0 sein, dann nur in den Modellen, die die Standardnullwert add der Spalte sind wie folgt:

protected $attributes = ['record_status' => 0];

auf diese Weise brauchen Sie nicht über 50 Modelle zu aktualisieren, da Standard = 1, statt nur „exc eptons "wird es mit 0 überschreiben.

+0

Ich mag das ... aber was ist mit diesen Paartabellen, die einfach nicht funktionieren? hast du keine record_status Spalte? –

+1

Ich dachte letzte Nacht darüber nach. Für diejenigen, die die Spalte nicht haben, kann ich einfach ein leeres Array an $ Attribute senden. Effektiv überschreiben. –

1

Sie können einfach stellen Sie die $attributes Eigenschaft in Ihrem Modell:

class Records extends Eloquent 
{ 
    protected $attributes = ['record_status' => 1]; 
} 

Auf diese Weise Ihre Attribute werden immer mit dem record_status Satz zu 1 initialisiert werden.

+0

Ich wusste davon, aber ich habe keine Lust meine 50+ Modelle damit zu aktualisieren. Sie alle haben bereits den Status "Record Status Active"/"Global" hinzugefügt, also habe ich gehofft, es dort zu tun. BEARBEITEN: Ich würde es auch vorziehen, dies nicht in mein Basismodell zu legen, da es tatsächlich ein oder zwei Ecken gibt, in denen dies NICHT verwendet wird: \ –