2015-02-16 13 views
5

używam następującą metodę, aby utworzyć kolumnę bazy danych typu ENUM w układzie producentów:Dodaj domyślną wartość pola typu enum w schemacie budowniczego

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

chciałbym ustawić jego wartość domyślna do active .
Próbowałem to zrobić:

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

Ale jak można się domyślić, że nie określa to wartość domyślna. Używam bazy danych MySQL, jeśli jest to ważne.

Odpowiedz

11

Od the MySQL manual:

Jeśli kolumna ENUM jest zadeklarowana w celu umożliwienia NULL, wartość NULL jest wartością prawną do kolumny, a wartość domyślna to NULL. Jeśli kolumna ENUM została zadeklarowana jako NOT NULL, jej wartość domyślna jest pierwszym elementem listy dozwolonych wartości.

Jestem przy założeniu oznacza to należy ustawić 'active' jako pierwsza wartość, usunąć wywołanie default() i ewentualnie ustawić NULL permittance ręcznie.

+0

Dzięki, najpierw należy Sprawdziłem instrukcję, że to było rzeczą laravel. Przyjmę, gdy tylko pozwoli mi na to czas. – Peter

+0

Wiwaty, cieszę się, że pomogło. :) –

+0

Masz na myśli usunąć zezwolenie 'NULL', nie wpisujesz go, prawda? – Adam

1

wpadłem na podobny problem, to co pracował dla mnie:

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

Place wartość domyślna jako pierwszy element w tablicy. active jest teraz wartością domyślną.

2

użyj:

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