Reputation: 7397
In the documentation I saw this
string:value
The field under validation must be a string type.
But as I understand (from the scarce explanation + the example given) I must validate with a certain string value. But what I want is to validate simply that the input value contains just letters from the alphabet.
Apparently
'name' => 'required|string'
won't cut it, because it has to be string:SomeValue
So, what is the correct way, to set a validation rule In the model class that validates against string?
Upvotes: 7
Views: 31729
Reputation: 1519
Also, you can use
required|min:3|max:100|regex:/^[\p{L}\p{M}\s.\-]+$/u
Upvotes: 0
Reputation: 997
You can use the regex validator for this:
'name' => ['required', 'regex:/^([a-zA-Z]+)(\s[a-zA-Z]+)*$/']
([a-zA-Z]+): This means that the input must begin with one or more letters.
(\s[a-zA-Z]+)*: This means that after the first word (name) you can add one space with another word (name) & it can be done 0 or more times.
If you want to force the user to input his first name(s) + last name(s) you could change the '*' character to a '+' character.
This might be a late answer but it still might help someone.
Upvotes: 1
Reputation: 178
I think what you're looking for is the 'alpha'
validation rule Laravel provides. This will ensure the value you are validating contains only alphabetic characters. Docs: http://laravel.com/docs/4.2/validation#available-validation-rules
Upvotes: 7