Соответствие без учета регистра происходит не от самого Laravel, а от вашей базы данных, которая (в большинстве случаев) использует сравнение без учета регистра для хранения имени пользователя. Вы можете изменить свою миграцию на что-то вроде, например:
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique()->collation('utf8_bin');
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
Это сопоставит столбец электронной почты с сопоставлением utf8_bin
, которое не учитывает регистр. Однако коллекция повлияет на сортировку столбцов, поэтому любые запросы с ORDER BY email
могут возвращать другой порядок, если вы используете символы UTF8 неоднозначного порядка. Если это электронное письмо или имя пользователя, которое может использовать только символы ASCII, это не проблема.