Laravel migration default-Wert

Ich nicht verstehen, was ist die Wirkung der default option in der Migration.

Kann ich sehen, dass die Spalte in der Datenbank definiert mit dem Standard-Wert, aber die Modelle sind ignorieren es völlig. Sagen, dass ich eine Book Modell, reflektieren die books Tabelle in der Datenbank. Ich habe die migration zum erstellen der Tabelle "books":

Schema::create('bools', function (Blueprint $table) {
    $table->increments('id');
          ->string('author');
          ->string('title');
          ->decimal('price', 4, 1)->default(100);
          ->timestamps();
});

Wenn ich eine neue Instanz erstellen von Book Modell sehe ich:

$book = new Book();
var_dump($book->price); //Always 0...

Den default-Wert wird ignoriert, und das Attribut nicht setzt richtig.
Ok, ich kann es bekommen, weil es ein neues Objekt und es sollte nicht die Standard-Werte aus der DB. Aber, wenn ich versucht zu retten, Modell:

$book = new Book();
$book->author = 'Test'
$book->title = 'Test'
$book->save();

Ist es spart 0 im Bereich price in der Datenbank!

Also, was ist der Punkt, der default option in der Migration?

Durch die Art und Weise...
War es nicht besser, wenn das Modell in der migration (wenn vorhanden) was sind die Bereiche, die Arten und das Verhalten, statt es zu definieren, die manuell in das Modell und die migration? Und außerdem, selbst zu schaffen, die eine Prüfung automatisch für das Modell. Ich denke, dass es möglich war, mit der kleinen änderung in der Struktur der migration, also warum ist es nicht so?

  • In der Laravel Dokumentation dort heißt es "Vor dem ändern einer Spalte, müssen Sie die doctrine/dbal Abhängigkeit zu Ihrem Komponisten.json-Datei. Die Doctrine DBAL-Bibliothek wird verwendet, um zu bestimmen, den aktuellen Status der Spalte, und erstellen Sie die SQL-Abfragen benötigt werden, um die festgelegten Einstellungen auf die Spalte." Haben Sie diese Abhängigkeit?
  • Ich bin kein ändern von Spalten, warum sollte ich das haben?
  • Da default($value) ist ein modifier, der in Migrationen und dies ist Voraussetzung für die Modifikatoren.
InformationsquelleAutor nrofis | 2016-06-06
Schreibe einen Kommentar