在我的项目中。 所有挂载可能是 int 或 float,甚至是 double.in 数据库金额列类型是varchar
,对于用户的每个选择金额,我有简单的限制,例如金额必须大于某个值,小于某个值。 但我在拉拉维尔得到了错误验证。
$ps = DB::table('merchant_web_service')->whereCustomerKey($request->input('customer_key'))->first();
/* $ps->minimum_range_buy is 5 and $ps->maximum_range_buy is 10*/
$validate_amount = Validator::make($request->all(),
['amount' => "required|min:$ps->minimum_range_buy|max:$ps->maximum_range_buy"]);
验证器错误为:
"The amount must be at least 10 characters."
我的测试金额值:1000,100.1
由于您没有为输入数据类型指定任何规则,因此它会将其验证为字符串。尝试numeric
和between
规则。
$validate_amount = Validator::make($request->all(),
['amount'=>
"required|numeric|between:$ps->minimum_range_buy,$ps->maximum_range_buy"
]);
试试这个
$rules = [
'your_field' => 'required|regex:/^'d*('.'d{2})?$/'
]