我想在laravel验证网址.我的规则包含
"url" => "required|url"
这很有效.但是当用户提交带有变音符号的网址时,
规则检查将始终失败.
像öäü等字符在德国域名中有效. Laravel有没有办法在网址中接受这些字符?
Laravel使用filter_var()和FILTER_VALIADTE_URL选项,该选项不允许使用变音符号.您可以编写自定义验证程序或将正则表达式验证规则与正则表达式结合使用.我相信你会找到一个
here
"url" => "required|regex:".$regex
或者更好地将规则指定为数组以避免特殊字符出现问题:
"url" => array("required","regex:".$regex)
或者,正如@michael指出的那样,只需在验证之前替换变音符号.请确保您之后保存真实的:
$input = Input::all(); $validationInput = $input; $validationInput['url'] = str_replace(['ä','ö','ü'],['ae','oe','ue'],$validationInput['url']); $validator = Validator::make( $validationInput,$rules ); if($validator->passes()){ Model::create($input); // don't use the manipulated $validationInput! }