首页 > 解决方案 > 验证数组是否已存在于 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",
        ]
    );

标签: phpmysqllaravelcyberduck

解决方案


你可以使用 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();

推荐阅读