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


Getting the index of a list and display in error message during validation in Laravel

我有一个验证规则如下。我通过ValidateRequests trait使用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.']
]

是否有一种方法来修改这些消息仅使用validationphp在修改这些消息?

[
    '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());
}