php - 验证数组是否已存在于 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);
输出:
我正在使用此代码将这些数据插入到我的表中
DB::table('tbl_emp_proj')->insert($insert_data1);
这很好用,但问题是,
我正在尝试验证我的表中是否emp_id
存在users
这是我的users
桌子
from 数组的值emp_id
应该检查它是否已经存在于我的users
使用company_id
字段 from 中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",
]
);
解决方案
你可以使用 LaravelValidator
来验证任何数组,就像它是请求输入一样。
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();
推荐阅读
- java - 为什么我不能导入 GoogleSignInClient 类?
- python - Django 在带有父对象的创建视图中创建多个子对象
- jwt - JWT 安全令牌解码后的标头和有效负载以解码格式给出主题。如何解码?
- php - MySQL bigdump.php 数据未保存
- spring - 无法将 AWS-Postgres 服务器与带有 heroku 托管的 Spring Boot 应用程序连接起来
- c# - 嵌套开关(输入问题)
- c# - c# BigInteger 到 32 字节十六进制
- python - 显示整数素数的程序
- c# - 检测新创建的表单何时关闭
- tkinter - tkinter 创建粘贴按钮