拉勒维尔为什么投
InvalidArgumentException('The values under comparison must be of the same type');
当输入非数字文本(如规则上的“测试”)时,出现异常:
public function rules()
{
return [
'account_no' => 'required|numeric|gte:1'
];
}
当需要时,只是不通过验证和显示消息:
account_no field must be numeric
如何解决这一异常?
发布于 2019-02-21 08:00:55
gte
验证下的字段必须大于或等于给定的field
。两个fields
必须是相同类型的。
例如,假设您有两个字段
POST DATA
// $request->comparison = 1;
// $request->account_no = 20319312;
你的规则应该是
return [
'account_no' => 'required|numeric|gte:comparison'
];
发布于 2019-02-21 08:06:31
您必须使用gte
,gt
和gte
是在Laravel5.6和最新版本中添加的,我不知道您使用的是哪个Laravel版本。
我想你可以像这样试试:
public function rules()
{
return [
'account_no' => 'required|numeric|min:1'
];
}
或
public function rules()
{
return [
'account_no' => 'required|numeric|min:0|not_in:0'
];
}
min:1
是最小值1,不允许负值。
not_in:0
是不能为0的值。
此外,您还可以使用regular expression
来完成这项工作。
我希望这会有所帮助。谢谢
https://stackoverflow.com/questions/54801576
复制相似问题