gpt4 book ai didi

laravel - 使用自动重定向时如何自定义验证错误消息?

转载 作者:行者123 更新时间:2023-12-02 19:50:29 24 4
gpt4 key购买 nike

使用 Laravel 5.8 和生成的字段名称,我想知道是否可以更改以编程方式使用的验证消息。

目前我正在 Controller 中使用自动重定向验证方法:

function processRequest(Request $request)
{
$generated = session()->get('expected_field');
$request->validate([
'preset' => 'required',
$generated => 'required'
]);
}

这按预期工作,但默认错误消息结果为

{$ generated} 字段是必需的”,这没有用。

我想在不重构自定义 Request 类的情况下执行此操作。

最佳答案

查看resoures/lang/{lang}/validation.php中的“自定义验证属性”:

/*
|--------------------------------------------------------------------------
| 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.

如果您不喜欢每个规则的结构/措辞,还可以在“验证语言行”部分中更新每个规则的默认消息。

-编辑-

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.'
]);

使用此逻辑,无论 $generate 是什么,验证规则都会触发,但消息会更通用,或者对 $generate 进行操作

关于laravel - 使用自动重定向时如何自定义验证错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58238802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com