【问题标题】:Validate only if the field is entered in Laravel 5.2仅在 Laravel 5.2 中输入字段时验证
【发布时间】:2016-02-05 11:08:05
【问题描述】:
public function rules() {
        return [
            'num_of_devices' => 'integer'
        ];
}

当且仅当输入该字段时,我想验证一个整数字段。但即使该字段为空,上述规则也会验证它是否为整数。我使用了somtimes,但没有结果。但是当我var_dump($num_of_devices) 它是字符串时。我使用的是 Laravel 5.2。我认为它在 5.1 中运行良好。

【问题讨论】:

    标签: validation laravel-5.2


    【解决方案1】:

    从 5.3 版本开始,您可以使用 nullable

    public function rules() {
            return [
                'num_of_devices' => 'nullable | integer'
            ];
    }
    

    【讨论】:

    • 我就是喜欢这个框架。每次我想到某事时,他们都会为我提供一些解决方案。非常感谢。
    • 注意:nullable 验证规则仅适用于 v5.3
    【解决方案2】:

    如果输入不为空,则向数组添加规则。您可以将所有验证规则收集到 $rules 数组,然后返回该数组。

    if( !empty(Input::get('num_of_devices')) ){
      $rules['num_of_devices'] = 'integer';
    }
    

    【讨论】:

    • 既然可以使用nullable,为什么还要这样做?
    • 关闭,但没有雪茄。问题是关于 Laravel 5.2 和可空验证规则是在 Laravel 5.3 中引入的。
    • 啊哈哈哈哈我明白了。
    【解决方案3】:

    您正在寻找sometimes 验证规则。来自文档:

    …仅在输入数组中存在该字段时对字段运行验证检查。

    【讨论】:

    • 它在 Laravel 5.1 版中工作(没有sometimes)。但是升级到 5.2 后就不是了……
    • sometimes 只检查输入数组上是否存在键,而不检查值是否为空/0/null。
    猜你喜欢
    • 1970-01-01
    • 2014-05-27
    • 1970-01-01
    • 2018-01-05
    • 1970-01-01
    • 2017-11-09
    • 2016-01-11
    • 2020-04-26
    • 2016-06-12
    相关资源
    最近更新 更多