+----------------------------------------------------------------------------------------------- */ namespace app\user\validate; use think\facade\Db; use think\Validate; class WorkPlanCheck extends Validate { // 自定义验证规则 protected function checkUnique($value, $rule, $data) { [$table, $field, $id] = explode(',', $rule); $idField = $id ?: 'id'; $idValue = $data[$idField] ?? null; $map = [ [$field, '=', $value], ]; if (!is_null($idValue)) { $map[] = [$idField, '<>', $idValue]; } return !Db::name(name: $table)->where($map)->count(); } protected $rule = [ 'name' => 'require|checkUnique:AttendanceWorkPlan,name,id', 'id' => 'require' ]; protected $message = [ 'name.require' => '班次名称不能为空', 'name.checkUnique' => '同样的班次名称已经存在', 'id.require' => '缺少更新条件', ]; protected $scene = [ 'add' => ['name'], 'edit' => ['name', 'id'], ]; }