Насколько я знаю, нет встроенного правила проверки, которое сначала хэширует значение.
Вы всегда можете написать собственное правило:
$rules = [
'name' => [
'required',
function($attribute, $value, $fail) {
if (User::find(Hash::make($value))) {
return $fail('The username already exists');
}
},
];
Вы также можете переместить это правило за пределы, если вы часто его используете, например Вы можете добавить его в свой поставщик услуг:
public function boot() {
Validator::extend('uniqueHashedUser', function ($attribute, $value, $parameters, $validator) {
if (User::find(Hash::make($value))) {
return false;
}
return true;
});
}
Тогда вы можете просто использовать его как:
$rules = [ "name" => 'required|uniqueHashedUser' ];