好的,我在这里遇到了一个非常困难的情况,我想我要么错过了一些已经存在的重要东西,要么 Laravel 没有提供一种方法来实现这一点。我想用我想在消息中替换的自定义占位符指定自定义验证错误消息。问题在于:我正在使用Laravel 文档明确指出的regex验证规则,应该更好地将其传递给数组以避免不必要的分隔符行为。情况如下:我想指定一个用于验证的全局多语言消息,我已经这样做了:name.regex
'custom' => [
'name' => [
'regex' => 'The :attribute must corespond to the given format: :format!'
]
]
Run Code Online (Sandbox Code Playgroud)
如您所见,我:format在该消息中放置了一个自定义占位符,因为对于name不同类的属性,我将匹配不同的正则表达式。所以我希望能够在验证过程中输入每个给定正则表达式的自定义人类可读描述(作为参数)。所以我在我的控制器中执行以下操作:
$input = Input::all();
$validator = Validator::make($input, [
'name' => ['required', 'regex:/^\p{Lu}\p{L}+ \p{Lu}\p{L}+$/u']
]);
Run Code Online (Sandbox Code Playgroud)
我还有一个Validator::replacer()方法AppServiceProvider.php可以替换:format消息中的占位符:
Validator::replacer('regex', function($message, $attr, $rule, $parameters){
return str_replace(':format', "I would like to be able to somehow retrieve the custom format description here, but using \$parameters[] is not an …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,您可以在其中输入自己的数据,然后有两个选择输入,用户可以在其中选择其因变量(输入数据中的列)和多个自变量。我想这样做,以便如果他们从数据中选择具有空值的列,则会立即弹出一条错误消息,告诉他们存在空值。这是因为,如果存在空值,那么应用程序将不会运行,并在单击运行按钮时崩溃。
我的第一个想法是使用这样的验证命令:
validate(
need(is.na(input$yvariable), "Error: null value detected in variable")
))
Run Code Online (Sandbox Code Playgroud)
(输入$yvariable是因变量)
然而,当我应用它时,这似乎没有做任何事情。我还尝试使用 if-else 语句来隐藏 UI 中的帮助文本,但也没有成功。同样,重要的是,一旦他们选择具有任何空值的列,就会弹出错误。有什么明确的方法可以实现这一目标吗?有人做过类似的事情吗?
谢谢!
我想知道是否可以向 Binder 触发的错误消息组件添加一个图标。
TextField usernameField = new TextField();
binder.forField(usernameField)
.asRequired("Please fill this field")
.withValidator(s -> s.length() > 3, "Username must contain at least 4 characters")
.withValidator(s -> s.length() < 12, "Username must contain less than 12 characters")
.bind(User::getUsername, User::setUsername);
Run Code Online (Sandbox Code Playgroud)
我找到了这个解决方法,但也许存在一种更原生的方法来做到这一点。问题是它需要有一个错误图像.png来显示图标,我不太喜欢它。另一个问题是我无法设置图标的颜色,我需要有2个相同的图标但具有不同的颜色(警告=黄色,错误=红色)。
vaadin-text-field::part(error-message)::before {
content: url('/icons/error-icon.jpg');
margin-right: 4px;
width: 16px;
height: 16px;
display: inline-block;
}
Run Code Online (Sandbox Code Playgroud) 我正在开发一款非常基础的游戏。完全是文字。这听起来很简单,但是当我声明确认玩家用户名的函数时,我看到了这个错误消息。 错误消息 “语法错误,插入“;” 完成LocalVariableDeclarationStatement' 这里是代码:
static void confirmation(); {
如您所见,它有一个分号,为什么会出现一条错误消息告诉我添加一个?我还注意到它提到了一个“LocalVariableDeclarationStatement”,我没有在我的代码中提到任何地方。
注意:我实际上不知道 'LocalVariableDeclarationStatement' 的作用,所以它可能很有意义。