Модификатор unique в Laravel
Некоторые значения в таблице не
должны повторяться: email для входа,
номер телефона, slug статьи в URL.
За это отвечает модификатор
unique:
<?php
$table->string('email')->unique();
?>
База данных не позволит сохранить две строки с одинаковым значением в этом столбце. При попытке вставки дубликата вернется ошибка.
Пример миграции таблицы пользователей с уникальным email:
<?php
public function up(): void
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->string('phone', 20)->unique();
$table->timestamps();
});
}
?>
unique можно комбинировать
с другими модификаторами:
<?php
$table->string('email')->nullable()->unique();
?>
Уникальность проверяется на уровне базы - это надежнее, чем только проверка в PHP перед сохранением. Подробнее про индексы - в разделе «Индексы».
Сделайте поле email
в таблице с юзерами уникальным.
Какие ещё поля в таблице пользователей логично сделать уникальными?