Heim >PHP-Framework >Laravel >Detaillierte Einführung in die Laravel-Datenmigration und Eloquent ORM (Codebeispiel)

Detaillierte Einführung in die Laravel-Datenmigration und Eloquent ORM (Codebeispiel)

不言
不言nach vorne
2019-01-08 11:34:173657Durchsuche

Dieser 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('请求 url');
            $table->char('city_name', 10)->comment('根据 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

Detaillierte Einführung in die Laravel-Datenmigration und Eloquent ORM (Codebeispiel)

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

Detaillierte Einführung in die Laravel-Datenmigration und Eloquent ORM (Codebeispiel)

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

Detaillierte Einführung in die Laravel-Datenmigration und Eloquent ORM (Codebeispiel)

Das Schreiben von Daten ist normal und dieses Beispiel endet hier.

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen