php - 在 Laravel 验证期间获取列表的索引并显示在错误消息中

标签 php laravel validation laravel-5

我有一个验证规则如下。我正在通过 ValidateRequests 特性使用 validate 方法。

$this->validate($request, [
    'entries'                 => 'required|max:5',
    'entries.*.name'          => 'required',
    'entries.*.email'         => 'required|email',
    'entries.*.mobile_number' => 'required'
]);

这些是我遇到的一些示例错误消息。

[
    'entries.0.name'  => ['The entries.0.name is required.'],
    'entries.1.email' => ['The entries.1.email must be a valid email address.']
]

在修改此类消息时,是否可以仅使用 validation.php 将消息修改为这些消息?

[
    'entries.0.name'  => ['Line 0 - The name is required.'],
    'entries.1.email' => ['Line 1 - The email must be a valid email address.']
]

最佳答案

如果你想自定义错误信息,那么你可以这样做:

$validator = Validator::make($request->all(), [
                        'entries'                 => 'required|max:5',
                        'entries.*.name'          => 'required',
                        'entries.*.email'         => 'required|email',
                        'entries.*.mobile_number' => 'required'
                    ]);

$validator->setAttributeNames([
            'entries.*.name'          => 'name',
            'entries.*.email'         => 'email',
            'entries.*.mobile_number' => 'mobile number'
        ]);

$errors = $validation->errors()->all();
foreach ($errors as $key => $error) {
    $errors[$key] = "Line {$key} - $error";
}

// dd($errors);

if($validation->fails()) {
    return redirect()->back()->withErrors($errors());
}

关于php - 在 Laravel 验证期间获取列表的索引并显示在错误消息中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40601968/

相关文章:

php - mysql_fetch_array 和 php 中的 while 循环

php - 为什么我在导出为 CSV 的 MySQL 中得到 HTML?

PHP DateTime DateInterval isset 在 var_dump 之后发生变化

php - 使用字符串获取模型

java - 如何验证 <aui :select> in a Liferay Form?

php - 用于下载用户列表的 eBay API(eBay API 用户指南/分步指南)

php - Laravel 按相关表排序

laravel - 如何在 Laravel 5.6 中创建自定义帮助文件?

c# - 单元测试验证规则

json - JSON对象的NodeJS验证库