sukohi / csv-validator
一个允许您验证CSV数据的Laravel包。
3.0.4
2020-10-02 00:32 UTC
Requires
- illuminate/support: ^5.7|^6.0|^7.0|^8.0
- sukohi/fluent-csv: ^3.0
README
一个允许您验证CSV数据的Laravel包。
此包与Laravel 5.7 -> 8.X兼容
安装
运行以下命令。
composer require sukohi/csv-validator:3.*
基本用法
您可以使用名为 Csv
的规则进行常规验证。
并且Laravel的所有验证规则都可用于 $csv_rules
,如下所示。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Sukohi\CsvValidator\Rules\Csv;
class CsvValidatorController extends Controller
{
public function store(Request $request) {
$csv_rules = [
0 => 'required',
1 => 'integer',
2 => 'required|min:10'
];
$request->validate([
'users_csv' => [
new Csv($csv_rules) // <- here
]
]);
// Do something..
}
}
带选项
$csv_rules = [
0 => 'required',
1 => 'integer',
2 => 'required|min:10'
];
$options = [
'encoding' => 'sjsin-win',
'start_row' => 1, // <- Starting validation from row one, not zero. (*1)
'end_row' => 4, // <- Ending validation
'row_callback' => function($row_number, $row_data) {
return true; // `false` means skipping validation
}
];
$request->validate([
'csv_file' => [
new Csv($csv_rules, $options)
]
]);
(*1) 例如,如果您不想验证标题行,即第一行,请在此处设置 2
。
注意:之前的编码方式也有效。
new Csv($csv_rules, 'sjis-win')
Csv规则
您可以使用这种方式跳过列。
$csv_rules = [
0 => 'required',
3 => 'required|min:10'
];
$request->validate([
'csv_file' => [
new Csv($csv_rules)
]
]);
检索
您可以通过在csv文件的属性后添加 _data
来访问csv数据,如下所示。
$csv_data = $request->csv_file_data; // when attribute is `csv_file`
消息
错误消息的属性如下。
The A1 field is required.
The C1 field is required.
The C2 must be at least 10 characters.
The C3 must be at least 10 characters.
The C4 field is required.
贡献者
感谢您的贡献!
许可协议
此包受MIT许可证的许可。
版权所有 2020 Sukohi Kuhoh