Reputation: 53
i am trying to validate some inputs using this :
$request->validate([
'prenom' => 'required',
'nom' => 'required',
'telephone' => ['required | regex:/^(?:(?:(?:\+|00)212[\s]?(?:[\s]?\(0\)[\s]?)?)|0){1}(?:5[\s.-]?[2-3]|6[\s.-]?[13-9]){1}[0-9]{1}(?:[\s.-]?\d{2}){3}$/|digits:10'],
'password' => 'required |string|min:8|confirmed',
'confirm_pass' => 'required',
'email' => 'required|email|max:255|string|unique:users'
]);
but it gives me an error:
Method Illuminate\Validation\Validator::validateRequired|Regex does not exist.
please any idea how to fix it ?!
Upvotes: 1
Views: 204
Reputation: 379
$validatedData = $request->validate([
'prenom' => 'required',
'nom' => 'required',
'telephone' => ['required | regex:/^(?:(?:(?:\+|00)212[\s]?(?:[\s]?\(0\)[\s]?)?)|0){1}(?:5[\s.-]?[2-3]|6[\s.-]?[13-9]){1}[0-9]{1}(?:[\s.-]?\d{2}){3}$/|digits:10'],
'password' => 'required |string|min:8|confirmed',
'confirm_pass' => 'required',
'email' => 'required|email|max:255|string|unique:users'
]);
Upvotes: 0
Reputation: 34678
The pipe |
sign is available in your regular expression pattern so it's conflicting with the separator. When using the regex pattern, it may be necessary to specify rules in an array instead of using pipe delimiters, change your code to :
'telephone' => array(
'required',
'regex:/^(?:(?:(?:\+|00)212[\s]?(?:[\s]?\(0\)[\s]?)?)|0){1}(?:5[\s.-]?[2-3]|6[\s.-]?[13-9]){1}[0-9]{1}(?:[\s.-]?\d{2}){3}$/',
'digits:10'
)
Upvotes: 3