你能检查验证规则是否存在/有效吗? [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/
我的应用程序具有自定义字段功能:用户可以为其产品创建额外的字段。
例如:用户销售食品并希望为产品的有效期添加一个日期字段。
到期日期必须晚于今天的日期。为实现这一点,用户可以从前端 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/