Wie kann ich den Namen der Zeitstempelspalte ändern, wenn ich "artisan migrate" verwende?

8

Ich habe Schwierigkeiten, die Namen der Zeitstempelspalten zu ändern, die von

generiert werden %Vor%

Befehl.

Ich habe bereits folgende Änderung vorgenommen. Wenn ich den eloquent query builder verwende, kann der Spaltenname korrekt generiert werden, aber wenn ich den obigen Befehl verwende, erzeugt er immer noch "created_at", "updated_at" und "deleted_at". Kann mir jemand helfen? Vielen Dank.

%Vor% %Vor%

P.S. Ich weiß, dass es keine gute Idee ist, den "Kern" zu modifizieren. Wenn jemand mir sagen kann, wie ich diese Klassen am besten erweitern kann, würde ich das sehr schätzen.

    
Jonathan 18.07.2013, 23:12
quelle

1 Antwort

19

Bearbeiten Sie niemals den Code im Ordner vendor . Erstens, normalerweise wird es (standardmäßig) nicht in Ihrem Repository mitgeführt, sodass Sie die Änderungen verlieren würden, wenn Sie oder jemand anderes jemals auf einem anderen Computer arbeiten wollte. Sekunde , es wird überschrieben, sobald Sie composer update ausführen.

Nun, nachdem wir das gesagt haben, fangen wir an, uns mit dem "Modifying the Core" Horror zu beschäftigen. Erstellen Sie für Illuminate\Database\Eloquent\Model.php einfach ein Basismodell, von dem Sie alle nachfolgenden Modelle erweitern und die darin enthaltenen Konstanten überschreiben:

app / models / BaseModel.php

%Vor%

Dann für den Fall Illuminate\Database\Schema\Blueprint ... Nun, es wird blutig:

  1. Erweitern Sie ..\Schema\Blueprint und überschreiben Sie die von Ihnen erwähnten Methoden.
  2. Erweitern Sie ..\Schema\Builder und überschreiben Sie die Methode createBlueprint , um Ihre neue Klasse Blueprint zu verwenden.
    • Erweitern Sie auch ..\Schema\MySqlBuilder , um von Ihrer neuen Builder -Klasse zu erweitern.
  3. Erweitern Sie ..\Connection und überschreiben Sie die Methode getSchemaBuilder , um Ihre neue Klasse Builder zu verwenden.
    • Erweitern Sie auch ..\MySqlConnection , ..\PostgresConnection , ..\SqlServerConnection und ..\SQLiteConnection , um von Ihrer neuen Connection -Klasse zu erweitern.
    • Hinweis: ..\MySqlConnection muss auch die getSchemaBuilder -Methode erweitert haben, um Ihre neue MySqlBuilder -Klasse zu verwenden.
  4. Erweitern Sie ..\ConnectionFactory und überschreiben Sie die Methode createConnection , um Ihre erweiterten Connection -Klassen zu verwenden.
  5. Erstellen Sie ServiceProvider , um Ihre neue ConnectionFactory -Klasse als neue db.factory -Komponente zu registrieren, und fügen Sie sie in Ihrer app/config/app.php -Datei unter providers .
  6. hinzu

Nachdem ich also eine halbe Stunde lang den Quellcode von Laravel durchforstet hatte, kam ich zu dem Schluss, dass es wahrscheinlich einfacher wäre, einfach Folgendes bei Ihren Migrationen zu tun:

%Vor%     
rmobis 19.07.2013, 03:37
quelle

Tags und Links