【问题标题】:laravel validation fails using the "numeric" rule, data is coming as number from formlaravel 验证使用“数字”规则失败,数据来自表单中的数字
【发布时间】:2017-09-16 01:00:24
【问题描述】:

我在我的页面中使用了这种输入表单:

<input type="number" class="form-control" name="price" maxlength="4">

据我所知,我只能在此处输入一个数字,表单将接受一个数字,理论上会向控制器发送一个数值。 但是设置此验证规则:

$this->validate($request, [

    'price' => 'numeric|max:5'

]);

将使控制器不会越过这一点,它甚至不会抛出错误,页面会重新加载,仅此而已。 当我从规则中删除“数字”时,我发现它一切正常。 那么我在这里错过了什么?从表单传递的数据是否作为测试传递?

【问题讨论】:

    标签: php laravel validation eloquent


    【解决方案1】:

    您收到重定向是因为验证失败我假设您不会在任何地方输出验证错误。

    https://laravel.com/docs/5.4/validation#rule-size

    当您将numericmax 一起使用时,您将应用以下使用size 的规则

    大小:值

    验证字段的大小必须与给定值匹配。 对于字符串数据,值对应于字符数。为了 数字数据,值对应于给定的整数值。为 数组,大小对应于数组的计数。为了 文件,大小对应于以千字节为单位的文件大小

    这使得任何低于 5 的东西都有效。

    将规则改为

    numeric|min:1|max:99999

    numeric|between:1,99999

    在您的开发中也可以使用Debugbar 之类的东西,这样您就可以从错误中获取尽可能多的信息。

    【讨论】:

    • 那么你如何检查这个数字不再是五位数呢?喜欢最大 99999?
    • 用您可以使用的示例更新了答案
    猜你喜欢
    • 2015-02-21
    • 1970-01-01
    • 2017-12-06
    • 2019-12-23
    • 2015-04-11
    • 2019-08-09
    • 2018-10-25
    • 2019-01-19
    • 2019-02-23
    相关资源
    最近更新 更多