首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel验证数字与gte:1抛出异常

Laravel验证数字与gte:1抛出异常
EN

Stack Overflow用户
提问于 2019-02-21 07:35:06
回答 2查看 4.4K关注 0票数 5

拉勒维尔为什么投

InvalidArgumentException('The values under comparison must be of the same type');

当输入非数字文本(如规则上的“测试”)时,出现异常:

代码语言:javascript
运行
复制
public function rules()
{
    return [
        'account_no' => 'required|numeric|gte:1'
    ];
}

当需要时,只是不通过验证和显示消息:

account_no field must be numeric

如何解决这一异常?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-21 08:00:55

gte验证下的字段必须大于或等于给定的field。两个fields必须是相同类型的。

例如,假设您有两个字段

代码语言:javascript
运行
复制
POST DATA
// $request->comparison = 1;
// $request->account_no = 20319312;

你的规则应该是

代码语言:javascript
运行
复制
return [
    'account_no' => 'required|numeric|gte:comparison'
];
票数 6
EN

Stack Overflow用户

发布于 2019-02-21 08:06:31

您必须使用gtegtgte是在Laravel5.6和最新版本中添加的,我不知道您使用的是哪个Laravel版本。

我想你可以像这样试试:

代码语言:javascript
运行
复制
public function rules()
{
    return [
        'account_no' => 'required|numeric|min:1'
    ];
}

代码语言:javascript
运行
复制
public function rules()
{
    return [
        'account_no' => 'required|numeric|min:0|not_in:0'
    ];
}

min:1是最小值1,不允许负值。

not_in:0是不能为0的值。

此外,您还可以使用regular expression来完成这项工作。

我希望这会有所帮助。谢谢

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54801576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档