2015-02-16 15 views
5

ich die folgende Methode unter Verwendung einer Datenbankspalte des Typs erstellen ENUM in Schema Builder:hinzufügen Standardwert zu Enumerationstyp Feld in Schema Builder

$table->enum('status', array('new', 'active', 'disabled')); 

Ich möchte es Standardwert active einstellen .
Ich habe versucht, dies zu tun:

$table->enum('status', array('new', 'active', 'disabled'))->default('active'); 

Aber wie Sie es eingestellt ist erraten kann es nicht Standardwert ist. Ich verwende eine MySQL-Datenbank, wenn das wichtig ist.

Antwort

11

Von the MySQL manual:

Wenn eine ENUM-Spalte NULL zu ermöglichen deklariert wird, ist der NULL-Wert ein zulässiger Wert für die Spalte, und der Standardwert ist NULL. Wenn eine ENUM-Spalte mit NOT NULL deklariert ist, ist ihr Standardwert das erste Element der Liste zulässiger Werte.

Ich gehe davon aus das heißt, Sie 'active' als der erste Wert ist, entfernen Sie den default() Rufaufbau sollte, und stellen Sie möglicherweise NULL permittance manuell.

+0

Danke, sollte zuerst das Handbuch überprüft haben, hielt es für eine Laravel Sache war. Wird akzeptieren, sobald das Zeitlimit mich überlässt. – Peter

+0

Prost, froh, dass es geholfen hat. :) –

+0

Sie meinen, entfernen Sie 'NULL' Erlaubnis, anstatt es zu setzen, richtig? – Adam

1

ich in ein ähnliches Problem lief, das ist was für mich gearbeitet:

$table->enum('status', array('active', 'new', 'disabled')); 

Legen Sie den Standardwert als das erste Element in dem Array. active ist jetzt der Standardwert.

2

Verwendung dieses:

$table->enum('status',['new', 'active', 'disabled'])->default('active');