在 laravel 5.4 验证中传递自定义参数
Pass custom parameters in laravel 5.4 validation
我正在 laravel 5.4 和 vuejs(多语言支持)开发一个应用程序,它验证 csv 文件的内容。我已经使用 vuejs 解析了 csv 文件,结果 json 数组 post 到 Laravel。
在 Laravel 上,我循环 json 数组并使用 laravel 验证器验证字段。
$i = 0;
foreach ($json_array as $key => $value) {
$params contains employee_id's and employee_name's
$i = $i + 1;
Validator::make($params, [
'employee_id' => 'required|integer|exists:employees,employee_id',
'employee_name' => 'required|string',
])->validate();
}
这可以使用 laravel 验证和 laravel 如果验证规则有任何中断则触发错误。
示例:Laravel 如果 csv 文件有空字段 employee_name,则显示错误 "employee_name is required"。
现在我需要用行号(行)显示错误,行号可以使用 $i 变量。如何将 $i 变量(行)传递给验证文件以显示带有行号的错误。
我已经花了很多时间将变量作为参数传递给验证消息(在验证文件上)。但是我没有得到解决方案。
我期望的输出是:
示例:
"employee_name is required in line : 8" 如果 csv 文件在第 8 行有一个空字段 employee_name。
另外,当触发错误时如何获取列编号?
感谢回复。
Laravel 验证器允许将自定义消息作为第三个参数传递,试试这个
$i = 0;
foreach ($json_array as $key => $value) {
$i++;
$messages = [
'required' => str_replace(":line",$i,trans('validation.required')),
];
Validator::make($params, [
'employee_id' => 'required|integer|exists:employees,employee_id',
'employee_name' => 'required|string',
],$messages)->validate();
}
// .project/resources/lang/en/validation.php
'required' => 'The :attribute is required in the line :line.',
我正在 laravel 5.4 和 vuejs(多语言支持)开发一个应用程序,它验证 csv 文件的内容。我已经使用 vuejs 解析了 csv 文件,结果 json 数组 post 到 Laravel。
在 Laravel 上,我循环 json 数组并使用 laravel 验证器验证字段。
$i = 0;
foreach ($json_array as $key => $value) {
$params contains employee_id's and employee_name's
$i = $i + 1;
Validator::make($params, [
'employee_id' => 'required|integer|exists:employees,employee_id',
'employee_name' => 'required|string',
])->validate();
}
这可以使用 laravel 验证和 laravel 如果验证规则有任何中断则触发错误。
示例:Laravel 如果 csv 文件有空字段 employee_name,则显示错误 "employee_name is required"。
现在我需要用行号(行)显示错误,行号可以使用 $i 变量。如何将 $i 变量(行)传递给验证文件以显示带有行号的错误。
我已经花了很多时间将变量作为参数传递给验证消息(在验证文件上)。但是我没有得到解决方案。
我期望的输出是:
示例:
"employee_name is required in line : 8" 如果 csv 文件在第 8 行有一个空字段 employee_name。
另外,当触发错误时如何获取列编号?
感谢回复。
Laravel 验证器允许将自定义消息作为第三个参数传递,试试这个
$i = 0;
foreach ($json_array as $key => $value) {
$i++;
$messages = [
'required' => str_replace(":line",$i,trans('validation.required')),
];
Validator::make($params, [
'employee_id' => 'required|integer|exists:employees,employee_id',
'employee_name' => 'required|string',
],$messages)->validate();
}
// .project/resources/lang/en/validation.php
'required' => 'The :attribute is required in the line :line.',