Mutators sind eine Methode zum ?ndern von Daten, bevor Modellattribute festgelegt werden, wobei das Naming -Format {Attributename} Attribut festgelegt ist. Accessors ist eine Methode, um die Rückgabedaten beim Erhalten von Attributen zu ?ndern, wobei das Namensformat GET {Attributename} Attribut ist. SetNameAttribute kann beispielsweise den Benutzernamen in Kleinbuchstaben umwandeln und dann speichern. GetCreateTatattribute kann die Datumsausgabe formatieren. Zu den gemeinsamen Verwendungen geh?ren die Reinigung der Eingabe, das Verschlüsseln sensibler Felder, die Formatierungszeit und andere Anzeigeinhalte. Bei der Verwendung sollten Sie auf die Fallempfindlichkeit von Feldnamen achten, um rekursive Anrufe zu vermeiden, die tote Schleifen verursachen. Sie sollten das Array $ this-> Attribute betreiben, anstatt direkt auf Attribute zuzugreifen. Sie k?nnen auch Feldalias über schreibgeschütztes Accessor erstellen und $ Casts kombinieren, um leistungsf?higere Typ-Conversion-Funktionen zu erzielen. Das Beherrschen reduziert den doppelten Code und macht die Modellschicht sauberer und effizienter.
In Laravels eloquentem Modell sind Mutatoren und Zubeh?r sehr praktische Werkzeuge. Sie erm?glichen es Ihnen, die Daten beim Abrufen oder Festlegen von Modelleigenschaften zu formatieren oder zu verarbeiten, ohne viel zus?tzliche doppelte Code schreiben zu müssen.

Was sind Mutatoren und Zubeh?r?
Einfach sagen:

- Mutatoren sind Methoden, die automatisch ausgeführt werden, bevor Sie den Modellattributwert festlegen und zur ?nderung der eingehenden Daten verwendet werden.
- Accessors ist eine Methode, die automatisch ausgeführt wird, wenn Sie den Wert des Modellattributs erhalten, mit dem die zurückgegebenen Daten ge?ndert werden.
Beispielsweise k?nnen Sie sie verwenden, um den vom Benutzer eingegebenen Namen automatisch in Kleinbuchstaben zu konvertieren, wenn Sie den Benutzer speichern, oder die Ausgabe beim Lesen des Datumsfeldes formatieren.
Wie man Mutatoren benutzt
Die Namensregeln des Mutators sind: set{AttributeName}Attribute
, wobei {AttributeName}
der Feldname im Modell ist, wobei die Erstbriefkapitalisierung ist.

Nehmen wir beispielsweise an, Sie haben ein User
mit einem Feld namens name
und m?chten den Namen vor dem Speichern in Kleinbuchstaben konvertieren:
?ffentliche Funktion SetNameattribute ($ Value) { $ this-> attribute ['name'] = strtolower ($ value); }
Auf diese Weise, wenn Sie ausführen:
$ user = new user (); $ user-> name = 'John doe'; $ user-> save ();
Die endgültige Datenbank ist johndoe
.
Gemeinsame Verwendungen:
- S?uberungsdaten (z. B. Trim, Strtolower) reinigen
- Verschlüsseln Sie sensible Felder automatisch (z. B. Passw?rter)
- Formatieren Sie den Dateipfad hochladen
So verwenden Sie Zubeh?r
Die Namensregel des Accessors lautet: get{AttributeName}Attribute
, auch basierend auf dem Feldnamen.
Sie haben beispielsweise ein Feld created_at
, das beim Abrufen eine formatierte Zeichenfolge zurückgeben m?chte:
?ffentliche Funktion getCreatedatattribute ($ value) { Rückgabedatum ('YM-D', Strtotime ($ value)); }
Wenn Sie nun $user->created_at
aufrufen, gibt ein Format ?hnlich wie 2025-04-05
zurück.
Wenn Sie auch eine Bibliothek wie Carbon verwenden, k?nnen Sie sie eleganter schreiben:
Verwenden Sie Illuminate \ Unterstützung \ Carbon; ?ffentliche Funktion getCreatedatattribute ($ value) { return carbon :: analyse ($ value)-> format ('f j, y'); }
Dies gibt ungef?hr April 5, 2025
zurück.
Gemeinsame Verwendungen:
- Formatzeit, Menge, Status und andere Inhalte anzeigen
- Splei?feldkombination (z. B. Vollname)
- Konvertieren Sie den Booleschen in menschlich lesbare Formate wie "Ja/Nein"
Tipps und Vorsichtsma?nahmen für den Gebrauch
Feldnamen sind fallsempfindlich
- Wenn Ihr Datenbankfeld unterstrichen ist (z. B.
first_name
), sollte der Methodenname alsgetFirstNameAttribute
odersetFirstNameAttribute
geschrieben werden.
- Wenn Ihr Datenbankfeld unterstrichen ist (z. B.
Vermeiden Sie einen toten Zyklus
- Rufen Sie nicht
$this->字段名
direkt in Mutator oder Accessor auf, da dies sonst rekursive Aufrufe verursachen kann, um einen Fehler zu verursachen.$this->attributes['字段名']
sollten betrieben werden.
- Rufen Sie nicht
Verwenden Sie Attribut -Alias
Manchmal m?chten Sie den ursprünglichen Feldnamen nicht entlarven, sondern einen Alias erstellen, indem Sie einen schreibgeschützten Accessor definieren. Zum Beispiel:
?ffentliche Funktion getFormattedNameattribute () { ucfirst zurückgeben ($ this-> name); }
Dann k?nnen Sie
$user->formatted_name
verwenden, um den formatierten Namen zu erhalten.-
Kombiniert mit Abgüssen ist m?chtiger
- Laravel unterstützt auch das Attribut
$casts
für die Typumwandlung, z. B. automatisch JSON -Zeichenfolgen in Arrays. Es funktioniert mit Mutatoren/Accessors.
- Laravel unterstützt auch das Attribut
Grunds?tzlich ist das. Sobald Sie Mutatatoren und Zubeh?r gemeistert haben, werden Sie feststellen, dass sie Ihnen helfen k?nnen, eine Menge sich wiederholender Logik zu reduzieren, wodurch die Modellschicht sauberer und zentralere Verarbeitung von Datenumwandlungen gestaltet wird.
Das obige ist der detaillierte Inhalt vonVerwenden von Mutatoren und Zubeh?r in Laravel eloquenten Modellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

Inlaravel, PoliciesorganizeAuthorizationLogicformodelactions.1.PoliciesAreclasseswithmethods -?hnlich, erstellen, aktualisieren und deteletethatreturnTrueorFalseBasedonUserPermissions.2.Toregisterapolicy, maptheModeltoitSpolithe $ $ policofafafauthsivicesProvimer.

Um neue Datens?tze in der Datenbank mit eloquent zu erstellen, gibt es vier Hauptmethoden: 1. Verwenden Sie die Methode erstellen, um Datens?tze schnell zu erstellen, indem Sie das Attribut -Array wie user :: create (['name' => 'Johndoe', 'E -Mail' => 'John@example.com']) schnell erstellen; 2. Verwenden Sie die Speichernmethode, um das Modell manuell zu instanziieren und Werte zuzuweisen, um einzeln zu speichern. Dies ist für Szenarien geeignet, in denen eine bedingte Zuordnung oder zus?tzliche Logik erforderlich ist. 3.. Verwenden Sie FirstOrCreate, um Datens?tze basierend auf Suchbedingungen zu finden oder zu erstellen, um doppelte Daten zu vermeiden. V.

Ja, YoucaninstalllaravelonanyoperatingsystemByFollowingTHESASTEPS: 1. InstallphpandRequiredEXTENSsionSsionSsionSlikembtring, OpenSSL, undxmlusingTools LikexampponWindows, Homebrewonmacos, ORAPTONLINUX; 2.InstallCompoSsers verwendet, mit Aninstallleronononononononononnononmandonmakcomposserm

Das Definieren einer Methode (auch als Aktion bezeichnet) in einem Controller besteht darin, der Anwendung mitzuteilen, was zu tun ist, wenn jemand eine bestimmte URL besucht. Diese Methoden verarbeiten normalerweise Anfragen, Verarbeitungsdaten und Rückgabemantworten wie HTML -Seiten oder JSON. Verst?ndnis der Grundstruktur: Die meisten Web -Frameworks (wie RubyonRails, Laravel oder SpringMVC) verwenden Controller für gruppenbezogene Operationen. Die Methoden innerhalb jedes Controllers entsprechen normalerweise einer Route, d. H. Der URL -Pfad, auf den jemand zugreifen kann. Beispielsweise k?nnen in PostController die folgenden Methoden vorhanden sein: 1.Index () - Postliste anzeigen; 2.Show () - Zeigen Sie einzelne Beitr?ge an; 3.Create () - Geben Sie es ab, neue Beitr?ge zu erstellen; 4.U

Die Hauptaufgabe des Controllers in Laravel besteht darin, HTTP -Anforderungen zu verarbeiten und Antworten zurückzugeben, um den Code ordentlich und wartbar zu halten. Durch die Konzentration der relevanten Anforderungslogik in eine Klasse wird der Controller die Routing -Datei einfacher, z. Die Erstellung eines Controllers kann über den Handwerksanweisungsbefehl phPartisanMake: ControllerUSerController implementiert werden, w?hrend der Ressourcencontroller mit der Option -RESource -Ressourcen mit Methoden für Standard -CRUD -Operationen generiert wird. Dann müssen Sie den Controller in der Route binden, z. B. Route :: get ('/user/{id

Laravel erm?glicht benutzerdefinierte Authentifizierungsansichten und Logik durch überschreiben des Standardstubs und des Controllers. 1. Um die Authentifizierungsansicht anzupassen, verwenden Sie den Befehl phPartIsanvendor: Publish-Tag = Laravel-Auth, um die Standardblattvorlage in das Verzeichnis der Ressourcen/Ansichten/des Auth zu kopieren und sie zu ?ndern, z. 2. Um die Authentifizierungslogik zu ?ndern, müssen Sie die Methoden in RegisterController, Logincontroller und ResetPasswordController anpassen, z.

LaravelProvidesRobusttoolsforvalidatingFormData.1.BasicvalidationCanbedoneUsingThevalidat () Methodincontroller, sicherstellen, dass diefieldsMeetcriterialikeRequired, maxLLEHpl, Oruniquevalues.2.

TomockDependencieseffectivyinLaravel, Gebrauchtpendentuminjektionserservices, Sollteceive () forfacades und MockeryforComplexcases.1.ForinjectedServices, verwenden Sie $ this-> Instance () TorePlacetherealclasswithamock.2.ForFacadethemailorCache, Useshoulsceise () bis
