Модификаторы колонок
Модификаторы — это методы, которые идут после определения колонки и меняют её поведение.
Nullable
По умолчанию колонка NOT NULL. nullable() разрешает NULL:
$table->string('bio')->nullable();
Default
Значение по умолчанию:
$table->integer('views')->default(0);
$table->boolean('active')->default(true);
$table->string('status')->default('draft');
Unique
Уникальный индекс:
$table->string('email')->unique();
Составной уникальный индекс:
$table->unique(['user_id', 'slug']);
Index
Обычный индекс для ускорения поиска:
$table->string('slug')->index();
$table->index(['status', 'created_at']);
Primary
Первичный ключ:
$table->primary('id');
$table->primary(['user_id', 'role_id']);
Auto-increment
$table->integer('id')->autoIncrement();
Unsigned
Для числовых колонок без отрицательных значений:
$table->integer('count')->unsigned();
Comment
Комментарий к колонке (для документации):
$table->string('status')->comment('Статус поста');
After и Before
Позиция колонки (MySQL):
$table->string('status')->after('title');
$table->string('slug')->before('body');
Collation и Charset
$table->string('title')->collation('utf8mb4_unicode_ci');
Виртуальные колонки
$table->string('full_name')->virtualAs('CONCAT(first_name, " ", last_name)');
$table->integer('total')->storedAs('price * quantity');