J'ai la règle de validation:
$rules = ['username' => 'required|string|alpha_dash']
Je dois empêcher le tiret lors de la validation, n'autoriser que les traits de soulignement, les lettres et les chiffres. Comment je peux le faire? Maintenant alpha_dash autorise les tirets ..
3 Réponses :
Je suggère d'utiliser la validation ou plus spécifiquement Parce que selon la documentation Le champ en cours de validation peut également contenir des caractères alphanumériques
sous forme de tirets et de soulignement. regex pour obtenir plus de pouvoir de personnalisation à l'avenir si vous le souhaitez. VOIR https://laravel.com/docs/5.8/validation#rule-regex a> $rules = ['username' => 'required|string|regex:/^[A-Za-z0-9_]+$/']
'regex:/^[A-Za-z0-9_]+$/'
alpha_dash prend en charge-
Vous pouvez utiliser regex: pattern dans votre validation.
$rules = ['username' => 'required|string|regex:/^[A-Za-z0-9_.]+$/']
Outre les autres réponses, vous pouvez créer une règle de validation personnalisée.
La commande artisanale suivante créera une nouvelle règle dans le dossier app \ Rules \ . p>
$rules = [
'username' => ['required', 'string', new AlphaNumeric()]
]
AlphaNumérique
class AlphaNumeric implements Rule
{
public function passes($attribute, $value)
{
return preg_match('/^[A-Za-z0-9_]+$/', $value);
}
public function message()
{
return 'your custom error message.';
}
}
Contrôleur
php artisan make:rule AlphaNumeric
Cette approche peut être utilisée pour créer des validations plus complexes et flexibles.
J'ai ajouté une réponse pour vous, cela vous a-t-il été utile? Si c'est le cas, regardez ici stackoverflow.com/help/someone-answers