你能检查验证规则是否存在/有效吗? [Laravel]

Can you check if validation rules exist / are valid? [Laravel]

我的应用程序具有自定义字段功能:用户可以为其产品创建额外的字段。

例如:用户销售食品并希望为产品的有效期添加一个日期字段。

到期日期必须晚于今天的日期。为实现这一点,用户可以从前端 select 获得一组验证规则。规则通过请求发送并存储在数据库中。当用户创建新产品时,将从数据库中检索验证规则并将其应用于该字段(例如:expiration_date)。

如何确保用户无法篡改请求以尝试添加无效的验证规则?

有没有办法检查验证规则是否 valid/exist 以便应用不会尝试应用无效规则并引发错误?

我最终使用正则表达式来验证所有验证规则。

可用的验证规则: 公认, active_url, α, alpha_dash, 大批, 布尔值, 日期, 谢绝, 清楚的, 电子邮件:, 整数, 知识产权, ipv4 IPv6, mac_address, json, 必需的, 可为空, 细绳, url, 后:, 前:, after_or_equal:, before_or_equal:, 之间:, 数字:, digits_between:, ends_with:, starts_with:, 分钟:, 最大限度:, multiple_of:, 尺寸:

这是正则表达式:

/accepted|nullable|active_url|alpha(_dash)?|array|size:[0-9]{1,9}
|(max|min|multiple_of):(-?[0-9]{1,9})|(ends|starts)_with:([A-z]+,)*([A-z]+)
|digits_between:([0-9]{1,2}),([0-9]{1,2})|digits:(-?[0-9]{1,2})
|between:(-?[0-9]{1,9}),(-?[0-9]{1,9})|boolean|date
|(after|before)(_or_equal)?:(today|[0-9]{4}-((1[0-2])|(0?[1-9]))-((3[01])|([0-2]?[0-9])))
|declined|distinct(:(strict|ignore_case))?
|email(:(((rfc|dns|strict|spoof|filter),){1,4})?(rfc|dns|strict|spoof|filter))?
|integer|ip(v[46])?|mac_address|json|required|string|url/