集合验证不起作用 + laravel
Collection validation does not work + laravel
我有一个 $array
大约。超过 100k 个条目。
我使用此代码将数组转换为集合:
$insert_data = collect($array);
// Make a collection to use the chunk method
$chunks = $insert_data->chunk(10000);
这将创建 10 组 10000 条记录。
现在我想验证字段,所以我使用这个代码:
$rules2 = [
'email.*' => 'required|email|max:255|unique:users,email',
'phone.*' => 'required|min:10|unique:users,phone',
'password.*' => 'required',
];
$rmsgs = [
'email.unique' => 'The email has already been taken.',
'phone.unique' => 'The phone has already been taken.',
];
$validator = Validator::make($array, $rules2, $rmsgs);
if ($validator->fails()) {
$m = [];
$m['message'] = '';
$xx = $validator->errors();
foreach ($xx->all() as $message) {
$m['message'] .= $message;
$m['message'] .= ',';
}
$m['message'] = rtrim($m['message'], ",");
array_push($msg, $m);
continue;
}
DB::table('users')->insert($chunk->toArray());
现在,此验证在导入文件时不起作用,但它不会在 $msg
数组中抛出任何错误。
我做错了什么?我将一些记录的电子邮件地址留空到 CSV 中,但它没有 return 任何错误。
你必须这样做
$rules2 = [
'*.email' => 'required|email|max:255|unique:users,email',
'*.phone' => 'required|min:10|unique:users,phone',
'*.password' => 'required'
];
而且你必须在 cron 作业中完成
我有一个 $array
大约。超过 100k 个条目。
我使用此代码将数组转换为集合:
$insert_data = collect($array);
// Make a collection to use the chunk method
$chunks = $insert_data->chunk(10000);
这将创建 10 组 10000 条记录。
现在我想验证字段,所以我使用这个代码:
$rules2 = [
'email.*' => 'required|email|max:255|unique:users,email',
'phone.*' => 'required|min:10|unique:users,phone',
'password.*' => 'required',
];
$rmsgs = [
'email.unique' => 'The email has already been taken.',
'phone.unique' => 'The phone has already been taken.',
];
$validator = Validator::make($array, $rules2, $rmsgs);
if ($validator->fails()) {
$m = [];
$m['message'] = '';
$xx = $validator->errors();
foreach ($xx->all() as $message) {
$m['message'] .= $message;
$m['message'] .= ',';
}
$m['message'] = rtrim($m['message'], ",");
array_push($msg, $m);
continue;
}
DB::table('users')->insert($chunk->toArray());
现在,此验证在导入文件时不起作用,但它不会在 $msg
数组中抛出任何错误。
我做错了什么?我将一些记录的电子邮件地址留空到 CSV 中,但它没有 return 任何错误。
你必须这样做
$rules2 = [
'*.email' => 'required|email|max:255|unique:users,email',
'*.phone' => 'required|min:10|unique:users,phone',
'*.password' => 'required'
];
而且你必须在 cron 作业中完成