it-swarm-pt.tech

Regra de validação de email no Laravel?

Eu faço a validação de email usando a regra simples:

'email' => 'required|email|unique:users,email',

Como modifico a opção unique para que funcione apenas se o email digitado for diferente do primordial?

ma amostra:

O campo email contém o valor padrão da tabela users: [email protected]

Então eu pressiono o botão sem fazer alterações no formulário. Não devo verificar unique:users.

Caso contrário, se eu mudasse um símbolo em [email protected] Preciso validar o valor recebido usando: unique:users.

7
MisterPi

Eu fiz isso usando as verificações condicionais:

 $validator = Validator::make($request->all(), []);

 $validator->sometimes('email', 'unique:users,email', function ($input) {
            return $input->email !== Auth::user()->email;
        });
3
MisterPi

Você pode encontrar um exemplo aqui https://laracasts.com/discuss/channels/requests/laravel-5-validation-request-how-to-handle-validation-on-update

Você precisará ter várias regras, dependendo do método de solicitação (atualizar ou criar) e poderá passar um terceiro parâmetro para único para garantir que não haja falhas se conhecer o usuário/email

'user.email' => 'required|email|unique:users,email,'.$user->id,

Mudar para método

switch($this->method())
{
    ...
}
7
Frank Provost