我想验证laravel中的URL.我的规则包括

"url" => "required|url"

This is working great. But when a user submits an url with umlauts, the rule check will always fail.

像ääää等角色..在德语域中有效.Laravel有没有办法在URL中接受这些字符?

推荐答案

Laravel uses filter_var() with the FILTER_VALIADTE_URL option which doesn't allow umlauts. You can write a custom validator or use the regex validation rule in combination with a regular expression. I'm sure you'll find one here

"url" => "required|regex:".$regex

Or better specify the rules as array to avoid problems with special characters:

"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!
}

Laravel相关问答推荐

警告:构建Reaction App(VITE)后无法解码下载的字体警告

Vue 组件中的图像不适用于 Vite + Laravel

如何使用 laravel 更新单个值

Laravel 验证 - 不同的属性规范

如何在 laravel 中为另一个用户 session()->forget('cart')?

如何在 Laravel 中填充以后执行的条件

Laravel 附加额外字段

我的composer 不会完全用 Laravel 4 更新它会被artisan卡住

在 Laravel 5 中添加新配置文件不起作用

具有实时和 WebSockets 的 Angular2 + Laravel

Laravel 查询构建器 - 如何按别名分组,或进行原始 groupBy

使用数据库用户提供程序时如何在 Laravel 中创建密码重置方法

Http请求多浏览器的烦恼

Laravel Artisan CLI 安全地停止守护进程队列工作者

如何在 Laravel 5.1 中为Electron邮件添加标题

Laravel 字符串验证以允许空字符串

无法捕获 Carbon 抛出的异常

laravel 如何读取 app/config/app.php 调试变量

找不到 HOME 环境 -- 扩展 `~'

Laravel 4 控制器模板/Blade - 正确的方法?