我试图使用以下方法验证一些输入:
$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'
]);但它给了我一个错误:
不存在Illuminate\Validation\Validator::validateRequired|Regex
方法。
你知道怎么修吗?!
发布于 2021-03-02 08:57:34
管道|符号在正则表达式模式中可用,因此与分隔符冲突。在使用regex模式时,可能需要在数组中指定规则,而不是使用管道分隔符,将代码更改为:
'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'
)发布于 2021-03-02 08:56:48
use Validator;增加控制器的顶部
发布于 2021-03-02 09:02:41
$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'
]);https://stackoverflow.com/questions/66436086
复制相似问题