J'utilise Laravel Auth pour effectuer l'authentification. J'ai besoin de comparer une entrée de champ (numéro de téléphone) avec une expression regex dans la méthode de validation. Comment puis-je faire ceci. Voici le code de méthode que j'utilise,
(Actuellement, je code dur mon numéro "0312 1234567" Comment puis-je utiliser une expression régulière ici?)
public function validator(array $data)
{
if($data['emailOrNumber'] == "03121234567") {
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'emailOrNumber' => ['required', 'numeric','unique:usersNew,phone'],
'password' => ['required', 'string', 'min:8'],
'surname2' => ['required', 'string', 'max:255']
]);
}
}
1 réponse
Si vous souhaitez vérifier par rapport à une expression régulière, vous pouvez utiliser la règle de validation Regex.
Vous pourriez utiliser
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'emailOrNumber' => ['required', 'numeric','unique:usersNew,phone', 'regex:/(\+[0-9]{2})?[0-9]{10,12}/g'],
'password' => ['required', 'string', 'min:8'],
'surname2' => ['required', 'string', 'max:255']
]);
Petit indice, je ne sauvegarderais pas l'email ou le numéro de téléphone dans la même colonne de la base de données. Ce sont deux choses complètement différentes, donc je les enregistrerais dans des colonnes différentes. Vous pouvez toujours laisser une des deux colonnes vide.
Vous pouvez en savoir plus sur cette validation sur https://laravel.com/docs/5.7/validation#rule-regex
De nouvelles questions
php
PHP est un langage de script largement utilisé, de haut niveau, dynamique, orienté objet et interprété, principalement conçu pour le développement Web côté serveur. Utilisé pour les questions sur le langage PHP.