Колонка ENUM в миграциях Laravel
Когда поле может принимать только
несколько заранее известных значений,
удобен метод enum. Вторым
параметром передают список допустимых
вариантов:
<?php
$table->enum('status', ['draft', 'published']);
?>
База данных не примет значение
вне списка. В примере поле status
может быть только draft
или published.
Пример миграции таблицы постов со статусом:
<?php
public function up(): void
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('text');
$table->enum('status', ['draft', 'published']);
$table->timestamps();
});
}
?>
Тип ENUM подходит для статусов
заказа, роли пользователя, типа
записи. Если вариантов много
и они часто меняются, иногда
удобнее отдельная таблица-справочник
и связь через внешний ключ.
Добавьте в таблицу с постами
поле status со значениями
draft и published.
Когда enum удобнее,
а когда boolean?