Урок 03

Модификаторы колонок

Модификаторы — это методы, которые идут после определения колонки и меняют её поведение.

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');