4
votes

Laravel, la validation alpha_dash empêche les tirets

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 ..


1 commentaires

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


3 Réponses :



3
votes

Vous pouvez utiliser regex: pattern dans votre validation.

$rules = ['username' => 'required|string|regex:/^[A-Za-z0-9_.]+$/']


0 commentaires

0
votes

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.


0 commentaires