我正在使用laravel 5.4和vuejs(多语言支持)开发一个应用程序,它可以验证csv文件的内容。我使用vuejs解析了csv文件,并将结果json数组发布到Laravel。
在Laravel上,我使用laravel验证器循环json数组并验证字段。
$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显示错误" employee_name是必需的"如果csv文件有一个空字段employee_name。
现在我需要显示行号(行)的错误,行号可以使用$ i变量。如何将$ i变量(行)传递给验证文件以显示带行号的错误。
我已经花了很多时间将变量作为参数传递给验证消息(在验证文件上)。但我确实得到了一个解决方案。
我期望的输出是:
示例:
" employee_name在行中是必需的:8"如果csv文件在第8行有一个空字段employee_name。
另外,如何在触发错误时获取编号?
感谢您的回复。
答案 0 :(得分:0)
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.',