使用自动重定向时如何自定义验证错误消息?
How can I customize validation error messages when using automatic redirects?
使用 Laravel 5.8
和生成的字段名称,我想知道是否可以更改以编程方式使用的验证消息。
目前我在我的控制器中使用验证的自动重定向方法:
function processRequest(Request $request)
{
$generated = session()->get('expected_field');
$request->validate([
'preset' => 'required',
$generated => 'required'
]);
}
这按预期工作,但默认错误消息导致
"The {$generated}
field is required" 这没用。
我想在不重构为自定义请求的情况下执行此操作 class。
检查 resoures/lang/{lang}/validation.php
中的 "Custom Validation Attributes":
/*
|--------------------------------------------------------------------------
| Custom Validation Attributes
|--------------------------------------------------------------------------
|
| The following language lines are used to swap attribute place-holders
| with something more reader friendly such as E-Mail Address instead
| of "email". This simply helps us make messages a little cleaner.
|
*/
'attributes' => [],
在这里,可以为各种验证字段设置自己的显示值。
例如,如果 session()->get('expected_field');
是 "first_name"
,但您希望它显示 "First Name"
,您可以设置:
'attributes' => [
'first_name' => 'First Name',
...
]
在那个阵列中,你会是金色的。验证消息将显示为:
The First Name field is required.
如果您不喜欢其中的 structure/wording,您还可以在 "Validation Language Lines" 部分更新每条规则的默认消息。
-编辑-
validate()
接受第二个参数,它是一组验证消息。这可以自定义以操作 session()->get('expected_field');
返回的字符串,或者完全忽略它以支持更通用的错误消息:
$this->validate([
$generated => 'required'
], [
// $generated.'.required' => 'The '.ucwords(str_replace('_', ' ', $generated)).' field is required.'
$generated.'.required' => 'The Anti-Spam field is required.'
]);
使用此逻辑,无论 $generated
是什么,都会触发验证规则,但消息会更通用,或者对 $generated
进行操作
使用 Laravel 5.8
和生成的字段名称,我想知道是否可以更改以编程方式使用的验证消息。
目前我在我的控制器中使用验证的自动重定向方法:
function processRequest(Request $request)
{
$generated = session()->get('expected_field');
$request->validate([
'preset' => 'required',
$generated => 'required'
]);
}
这按预期工作,但默认错误消息导致
"The {$generated}
field is required" 这没用。
我想在不重构为自定义请求的情况下执行此操作 class。
检查 resoures/lang/{lang}/validation.php
中的 "Custom Validation Attributes":
/*
|--------------------------------------------------------------------------
| Custom Validation Attributes
|--------------------------------------------------------------------------
|
| The following language lines are used to swap attribute place-holders
| with something more reader friendly such as E-Mail Address instead
| of "email". This simply helps us make messages a little cleaner.
|
*/
'attributes' => [],
在这里,可以为各种验证字段设置自己的显示值。
例如,如果 session()->get('expected_field');
是 "first_name"
,但您希望它显示 "First Name"
,您可以设置:
'attributes' => [
'first_name' => 'First Name',
...
]
在那个阵列中,你会是金色的。验证消息将显示为:
The First Name field is required.
如果您不喜欢其中的 structure/wording,您还可以在 "Validation Language Lines" 部分更新每条规则的默认消息。
-编辑-
validate()
接受第二个参数,它是一组验证消息。这可以自定义以操作 session()->get('expected_field');
返回的字符串,或者完全忽略它以支持更通用的错误消息:
$this->validate([
$generated => 'required'
], [
// $generated.'.required' => 'The '.ucwords(str_replace('_', ' ', $generated)).' field is required.'
$generated.'.required' => 'The Anti-Spam field is required.'
]);
使用此逻辑,无论 $generated
是什么,都会触发验证规则,但消息会更通用,或者对 $generated