


Detaillierte Einführung in die Laravel-Datenmigration und Eloquent ORM (Codebeispiel)
Jan 08, 2019 am 11:34 AMDieser Artikel bietet Ihnen eine detaillierte Einführung (Codebeispiel) zur Laravel-Datenmigration und zu Eloquent ORM. Ich hoffe, dass er für Sie hilfreich ist.
Man kann sagen, dass die Datenbank der am h?ufigsten verwendete und wichtigste Teil der Backend-Entwicklung ist. Laravel bietet eine sehr praktische Eloquent ORM-Modellklasse für die einfache und intuitive Interaktion mit der Datenbank. Gleichzeitig dient die Datenmigration der Verwaltung der Datenbank, die mit dem Team geteilt und bearbeitet werden kann. Weitere Informationen zu beiden finden Sie in der folgenden Dokumentation.
Im Folgenden werden beide als Beispiel verwendet. Die Anforderung besteht darin, den Browserverlauf des Benutzers aufzuzeichnen. Bitte bringen Sie dieses Beispiel nicht in tats?chliche Projekte ein, dieser Artikel ist nur ein Beispiel. Das eigentliche Projekt wird entsprechend den Anforderungen aufgezeichnet und die Speichermethode ausgew?hlt.
Erstellen Sie eine Datentabelle
Der erste Schritt besteht natürlich darin, eine Datentabelle zu erstellen. Mithilfe des Befehls ?Artisan“ k?nnen problemlos Modelle erstellt und Daten migriert werden. php artisan make:model Models/BrowseLog -m, der Parameter -m erstellt beim Erstellen des Modells auch eine Datenmigrationsdatei. Nach der Ausführung des obigen Befehls wurden zwei neue Dateien app/Models/BrowseLog.php und Database/migrations/{now_date}_create_browse_logs_table.php hinzugefügt.
Bearbeiten Sie als n?chstes {now_date}_create_browse_logs_table.php, um die Datentabelle zu erstellen
/** ?????*?Run?the?migrations. ?????* ?????*?@return?void ?????*/ ????public?function?up() ????{ ????????Schema::create('browse_logs',?function?(Blueprint?$table)?{ ????????????$table->increments('id'); ????????????$table->ipAddress('ip_addr')->comment('ip?地址'); ????????????$table->string('request_url',?20)->comment('請(qǐng)求?url'); ????????????$table->char('city_name',?10)->comment('根據(jù)?ip?獲取城市名稱'); ????????????$table->timestamps(); ????????}); ????????DB::statement("ALTER?TABLE?`browse_logs`?comment'瀏覽記錄表'");?//?表注釋 ????}
Nachdem die Bearbeitung abgeschlossen ist, führen Sie den Befehl php artisan migrate aus, um alle Datentabellen zu erstellen, die noch nicht erstellt wurden migriert. Wie folgt
Pers?nlich ist der Standarddatentyp von Laravel fraglich. Das Datenformat von ipAddress() ist beispielsweise varchar(45). Tats?chlich k?nnen Sie ip2long verwenden, um es zur Speicherung in int zu konvertieren. timestamps() kann auch Zeitstempel zur Speicherung verwenden. Natürlich bietet Laravel auch Accessoren und Modifikatoren für eine einfache Wartung. Sie k?nnen im tats?chlichen Projekt selbst ausw?hlen.
Middleware definieren
Definieren Sie eine globale Middleware, die für jede Anfrage ausgeführt wird. Führen Sie php artisan make:middleware BrowseLog aus, um die Datei app/Http/Middleware/BrowseLog.php zu erstellen.Fügen Sie die erstellte Middleware wie folgt zu app/Http/Kernel.php hinzu
Daten aufzeichnen
Zeichnen Sie abschlie?end in der Middleware die Daten in der Datenbank auf. Der Code lautet wie folgt:/** ?????*?Handle?an?incoming?request. ?????* ?????*?@param??\Illuminate\Http\Request??$request ?????*?@param??\Closure??$next ?????*?@return?mixed ?????*/ ????public?function?handle($request,?Closure?$next) ????{ ????????$log?=?new?\App\Models\BrowseLog(); ????????$log->ip_addr?=?$request->getClientIp(); ????????$log->request_url?=?$request->path(); ????????$log->city_name?=?get_city_by_ip(); ????????$log->save(); ????????return?$next($request); ????}Nachdem Sie einige Links besucht haben, gehen Sie zur Datenbank, um einen Blick darauf zu werfen
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Laravel-Datenmigration und Eloquent ORM (Codebeispiel). 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)

Vermeiden Sie N 1 Abfrageprobleme, reduzieren Sie die Anzahl der Datenbankabfragen, indem Sie die zugeh?rigen Daten im Voraus laden. 2. W?hlen Sie nur die erforderlichen Felder aus, um das Laden vollst?ndiger Entit?ten zu vermeiden, um Speicher und Bandbreite zu sparen. 3.. Verwenden Sie Cache-Strategien vernünftigerweise, z. 4. Optimieren Sie den Lebenszyklus der Entit?t und rufen Sie Clear () regelm??ig an, um den Speicher freizugeben, um den Speicherüberlauf zu verhindern. 5. Stellen Sie sicher, dass der Datenbankindex die generierten SQL -Anweisungen existiert und analysiert, um ineffiziente Abfragen zu vermeiden. 6. Deaktivieren Sie die automatische ?nderungsverfolgung in Szenarien, in denen ?nderungen nicht erforderlich sind, und verwenden Sie Arrays oder Leichtgewichtsmodi, um die Leistung zu verbessern. Die korrekte Verwendung von ORM erfordert die Kombination der SQL -überwachung, -gespeicherung, der Stapelverarbeitung und der geeigneten Optimierung, um die Anwendungsleistung zu gew?hrleisten und gleichzeitig die Entwicklungseffizienz beizubehalten.

Die Datei "Settings.JSON" befindet sich auf dem Pfad auf Benutzerebene oder Arbeitsbereichsebene und wird verwendet, um die VSCODE-Einstellungen anzupassen. 1. Benutzer-Level-Pfad: Windows ist C: \ Benutzer \\ AppData \ Roaming \ Code \ User \ Settings.json, MacOS is /users//library/applicationsupport/code/user/settings.json, Linux is /home/.config/code/usser/setings.json; 2. Pfad auf Arbeitsbereichsebene: .VSCODE/Einstellungen im Projekt Root Directory

ReadOmpropertiesinphp8.2canonlyBeSignedoncinstructororatDeklarationandCannotBemodifiedAfterward, durchsetzungsvermutbarkeitatheluagelevel.2.ToachedevimmiMmutability, WrapMutabletypesLikearrayObjecustomimmutablecollections

Erstellen Sie Referenzen Tabelle, um Empfehlungsbeziehungen zu erfassen, einschlie?lich Empfehlungen, Empfehlungen, Empfehlungscodes und Nutzungszeit; 2. Definieren Sie die Beziehungen zwischen H?rern und Hasmany im Benutzermodell, um Empfehlungsdaten zu verwalten. 3. Erstellen Sie bei der Registrierung einen eindeutigen Empfehlungscode (kann durch Modellereignisse implementiert werden). 4. Erfassen Sie den Empfehlungscode, indem Sie die Parameter w?hrend der Registrierung abfragen, nach überprüfung eine Empfehlungsbeziehung aufstellen und die Selbstverantwortung verhindern. 5. den Belohnungsmechanismus ausl?sen, wenn empfohlene Benutzer das angegebene Verhalten (Abonnementauftrag) abschlie?en; 6. Generieren Sie gemeinsame Empfehlungsverbindungen und verwenden Sie URLs mit Laravel Signature, um die Sicherheit zu verbessern. 7. Empfehlungsstatistiken auf dem Dashboard anzeigen, z. B. die Gesamtzahl der Empfehlungen und konvertierten Zahlen; Es ist notwendig, sicherzustellen, dass Datenbankbeschr?nkungen, Sitzungen oder Cookies bestehen bleiben.

Verwenden Sie zun?chst JavaScript, um die Einstellungen für Benutzersysteme und lokal gespeicherte Themeneinstellungen zu erhalten und das Seitenthema zu initialisieren. 1. Die HTML -Struktur enth?lt eine Schaltfl?che zum Ausl?sen von Themenwechsel. 2. CSS verwendet: root, um helle Themenvariablen zu definieren, .Dark-Mode-Klasse definiert dunkle Themenvariablen und wendet diese Variablen über var () an. 3.. JavaScript erkennt bevorzuge-farbige Scheme und liest LocalStorage, um das ursprüngliche Thema zu bestimmen. 4. Schalten Sie die Dark-Mode-Klasse im HTML-Element beim Klicken auf die Schaltfl?che und speichern Sie den aktuellen Status vor LocalStorage. 5. Alle Farb?nderungen werden mit einer übergangsanimation von 0,3 Sekunden begleitet, um den Benutzer zu verbessern

Verwenden Sie Leistungsanalyse-Tools, um Engp?sse zu lokalisieren, VisualVM oder JProfiler in der Entwicklung und Testphase zu verwenden und Async-Profiler in der Produktionsumgebung Priorit?t zu geben. 2. Reduzieren Sie die Objekterstellung, verwenden Sie Objekte wieder, verwenden Sie StringBuilder, um String -Splei?en zu ersetzen und entsprechende GC -Strategien auszuw?hlen. 3.. Optimieren Sie die Auswahl der Sammlung, w?hlen Sie die Anfangskapazit?t gem?? der Szene aus; V. 5. Tune JVM-Parameter, festlegen, angemessene Haufengr??e und Müllsammler mit geringer Latenz einstellen und GC-Protokolle aktivieren; 6. Vermeiden Sie die Reflexion auf Codeebene, ersetzen Sie Wrapper -Klassen durch Grundtypen, Verz?gerungsinitialisierung und verwenden Sie endgültige und statische. 7. Kontinuierliche Leistungstest und überwachung, kombiniert mit JMH

Erstellen Sie ein neues Laravel -Projekt und starten Sie den Service. 2. Generieren Sie das Modell, die Migration und den Controller und führen Sie die Migration aus; 3. Definieren Sie die erholsame Route in Routen/api.php; V. 5. Verwenden Sie Postbote oder Curl, um die API -Funktion zu testen. 6. Fügen Sie optional die API -Authentifizierung durch Heiligtum hinzu; Erhalten Sie schlie?lich eine klare Struktur, vollst?ndig und erweiterbar Laravelrestapi, geeignet für praktische Anwendungen.

Eloquentorm ist das integrierte Relational Mapping-System von Laravel. Sie betreibt die Datenbank über PHP -Syntax anstelle von nativem SQL, wodurch der Code pr?gnanter und leicht zu warten ist. 1. Jede Datentabelle entspricht einer Modellklasse, und jeder Datensatz existiert als Modellinstanz. 2. übernehmen Sie den aktiven Datensatzmodus, und die Modellinstanz kann selbst gespeichert oder aktualisiert werden. 3.. Support -Stapelzuweisung und das $ fillbare Attribut müssen im Modell definiert werden, um die Sicherheit zu gew?hrleisten. 4. Bieten Sie eine starke Beziehungsunterstützung wie eins zu eins, eins zu viele, viele zu viele usw., und Sie k?nnen über Methodenaufrufe auf die zugeh?rigen Daten zugreifen. 5. Integrierter Abfragekonstruktor, wo OrderBy und andere Methoden als Ketten bezeichnet werden k?nnen, um Abfragen zu erstellen; 6. Unterstützen Sie Zubeh?r und Modifikatoren, die die Nummer beim Erhalten oder Einlegen von Attributen formatieren k?nnen.
