2 votes

existe-t-il des règles de validation pour les anciens mots de passe ?

Existe-t-il des règles de validation qui permettent de comparer le champ de saisie et la colonne dans la base de données s'ils correspondent ?

comme s'ils devaient correspondre à l'identifiant de l'utilisateur, à la session, au mot de passe saisi et au mot de passe de la base de données ?

1voto

Alexey Mezenin Points 86781

Vous êtes à la recherche de exists règle :

Le champ en cours de validation doit exister dans une table de base de données donnée.

'form_field' => 'exists:table,column'

0voto

sykez Points 494

Je suis tombé sur ce site alors que je cherchais la même réponse. C'est peut-être un peu vieux, mais comme Christian l'a mentionné dans les commentaires, la solution d'Alexey permet à l'utilisateur d'utiliser n'importe quel mot de passe existant (même celui d'un autre utilisateur) dans la base de données comme mot de passe actuel. J'espère que cette réponse aidera quelqu'un :)

Ainsi, pour Laravel 5.2, la solution ci-dessous a fonctionné pour moi comme suit mentionné dans la documentation :

'old_password' => 'required|exists:users,password,usr_id,'.$user_id,

Cela peut être différent dans Laravel 5.3+, car l'option Documentation de Laravel 5.3 dispose de la validation suivante pour personnaliser la requête. Je n'ai pas essayé, mais cela ne fonctionne pas pour Laravel 5.2.

use Illuminate\Validation\Rule;

Validator::make($data, [
    'email' => [
        'required',
        Rule::exists('staff')->where(function ($query) {
            $query->where('account_id', 1);
        }),
    ],
]);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X