dsa-io/csv-validator

基于Laravel内置验证器的CSV验证器

1.1.3 2017-06-02 13:33 UTC

README

执行composer命令。

composer require dsa-io/csv-validator:1.*

在app.php中注册服务提供者

'providers' => [
    ...Others...,
    Dsaio\CsvValidator\CsvValidatorServiceProvider::class,
]

还别名

'aliases' => [
    ...Others...,  
    'CsvValidator' => Dsaio\CsvValidator\Facades\CsvValidator::class,
]

基本用法

$csv_path = 'test.csv';
$rules = [
    0 => 'required',
    1 => 'required|integer',
    2 => 'required|min:4'
];
$csv_validator = CsvValidator::make($csv_path, $rules);

if($csv_validator->fails()) {
    $errors = $csv_validator->getErrors();
}    

规则

您可以设置键而不是索引,如下所示。

$rules = [
    'First Name' => 'required',
    'Last Name' => 'required',
    'Email' => 'required|email'
];

在这种情况下,CSV的标题行需要包含First NameLast NameEmail
这些键将用作错误消息的属性名称。

修剪

您可以设置第三个参数为一个布尔值。如果设置为true,将修剪CSV的单元格。(默认:true)

CsvValidator::make($csv_path, $rules, true, 'SJIS-win');

编码

您可以设置第四个参数为一个特定的编码。(默认:UTF-8)

CsvValidator::make($csv_path, $rules, 'SJIS-win');

错误消息

调用fails()后,您可以获取错误消息。

$errors = $csv_validator->getErrors();

foreach ($errors as $row_index => $error) {

    foreach ($error as $col_index => $messages) {

        echo 'Row '. $row_index .', Col '.$col_index .': '. implode(',', $messages) .'<br>';

    }

}

异常

如果验证器期望一个标题行(即它接收一个关联规则数组)并且CSV为空,将抛出异常。

许可证

本软件包受MIT许可证许可。

版权所有2017 DSA