如果数组已经存在于 mysql php laravel 中则验证数组
Validate array if already exists in mysql php laravel
目前我有一组数组。
和
我可以使用 Laravel
轻松地将这些数据插入到我的数据库中,而无需进行任何验证
这是示例数组
代码:
$excel1 = Importer::make('Excel');
$excel1->hasHeader(true);
$excel1->load($savePath.$fileName);
$excel1->setSheet(2);
$collection1 = $excel1->getCollection();
$arr1 = json_decode($collection1,true);
foreach ($arr1 as $row1) {
$insert_data1[] = array(
'projCode' => $projCode,
'emp_id' => $row1['company_id'],
'type' => 'EMP',
'deleted' => 0,
'by_id' => auth()->user()->id,
'updated_by' => auth()->user()->name,
'created_at' => now(),
'updated_at' => now(),
);
}
dd($insert_data1);
输出:
并且我正在使用此代码将这些数据插入到我的 table
DB::table('tbl_emp_proj')->insert($insert_data1);
这工作正常,但问题是,
我正在尝试验证 emp_id
是否存在于我的 users
table
中
这是我的 users
table
数组中 emp_id
的值应使用 users
中的 company_id
字段检查它是否已存在于我的 users
中。如果 $insert_data1
是一个数组,我该如何验证它并且应该检查它是否存在于数据库中?
更新
目前我有这个验证器,我试图加起来 $Insert_data1
但给了我 undefined var for $insert_data1
。
$validator = Validator::make(
[
'file' => $request->file,
'extension' => strtolower($request->file->getClientOriginalExtension()),
],
[
'file' => 'required|max:5000',
'extension' => 'required|in:,csv,xlsx,xls',
],
$insert_data1,
[
'*.emp_id' => "required|exists:users,company_id",
]
);
您可以使用 Laravel Validator
来验证任何数组,就好像它是请求输入一样。
use Illuminate\Support\Facades\Validator;
$validator = Validator::make(
$insert_data1,
[
'*.emp_id' => "required|integer|exists:users,company_id",
]
);
编辑:
您可以使用验证器 API 接收错误消息和错误项。
$failed = $validator->fails(); //boolean
$errors = $validator->errors();
$validated = $validator->validated();
$invalid = $validator->invalid();
目前我有一组数组。
和
我可以使用 Laravel
轻松地将这些数据插入到我的数据库中,而无需进行任何验证
这是示例数组
代码:
$excel1 = Importer::make('Excel');
$excel1->hasHeader(true);
$excel1->load($savePath.$fileName);
$excel1->setSheet(2);
$collection1 = $excel1->getCollection();
$arr1 = json_decode($collection1,true);
foreach ($arr1 as $row1) {
$insert_data1[] = array(
'projCode' => $projCode,
'emp_id' => $row1['company_id'],
'type' => 'EMP',
'deleted' => 0,
'by_id' => auth()->user()->id,
'updated_by' => auth()->user()->name,
'created_at' => now(),
'updated_at' => now(),
);
}
dd($insert_data1);
输出:
并且我正在使用此代码将这些数据插入到我的 table
DB::table('tbl_emp_proj')->insert($insert_data1);
这工作正常,但问题是,
我正在尝试验证 emp_id
是否存在于我的 users
table
这是我的 users
table
数组中 emp_id
的值应使用 users
中的 company_id
字段检查它是否已存在于我的 users
中。如果 $insert_data1
是一个数组,我该如何验证它并且应该检查它是否存在于数据库中?
更新
目前我有这个验证器,我试图加起来 $Insert_data1
但给了我 undefined var for $insert_data1
。
$validator = Validator::make(
[
'file' => $request->file,
'extension' => strtolower($request->file->getClientOriginalExtension()),
],
[
'file' => 'required|max:5000',
'extension' => 'required|in:,csv,xlsx,xls',
],
$insert_data1,
[
'*.emp_id' => "required|exists:users,company_id",
]
);
您可以使用 Laravel Validator
来验证任何数组,就好像它是请求输入一样。
use Illuminate\Support\Facades\Validator;
$validator = Validator::make(
$insert_data1,
[
'*.emp_id' => "required|integer|exists:users,company_id",
]
);
编辑:
您可以使用验证器 API 接收错误消息和错误项。
$failed = $validator->fails(); //boolean
$errors = $validator->errors();
$validated = $validator->validated();
$invalid = $validator->invalid();