首页 > 解决方案 > Laravel 规则验证检查数据库不工作

问题描述

这是我的代码:

  $id_project = $request->id;
  $rfid       = $request->rfid;

  $validateData = $request->validate([
                    'name'      => 'required|string|max:255',
                    'rfid'      => 'required|min:40',[
                                    Rule::exists('usersdata')->where(function($query) use ($id_project,$rfid){
                                       $query->where('id_project', $id_project)->where('rfid', $rfid);
                                    }),
                    ],
                    'description'   => 'string|max:255|nullable',
                ]);

   $user = UserModel::create($validateData);
   return Response()->json(['success' => 'success insert data'], 200);

验证 RFID(必需或最少 40 个字符)的工作。
但是如果我使用相同的 id_project 和相同的 RFID 数据插入,则无法正常工作。而在我的数据库中已经有 id_project 和 rfid。
保持成功插入数据。

标签: phplaravelvalidation

解决方案


您的代码有语法错误,请将您的代码与更正后的代码进行比较:

$validateData = $request->validate([
    'name'      => 'required|string|max:255',
    'rfid'      => [
                       'required',
                       'min:40',
                       Rule::unique('usersdata', 'rfid')
                           ->where('id_project', $id_project)
                   ],
    'description'   => 'string|max:255|nullable',
]);

推荐阅读