【问题标题】:Laravel: Apply validation rule only if the another one passedLaravel:仅当另一个通过时才应用验证规则
【发布时间】:2016-09-21 09:20:45
【问题描述】:

在我的 Laravel 5.2 应用程序中,我有以下验证规则来检查字段:

$rules = array(
    'file' => 'mimes:jpg,png,pdf,doc,docx',
    'file' => 'validate_file'
);

现在,validate_file 是一个自定义验证规则。我只想仅在第一个mimes 验证通过时运行它。

我知道我可以简单地验证/重定向错误 - 分两批,首先是 mimes,然后是 validate_file,但这似乎有点矫枉过正。

我可以在 Laravel 5.2 中以聪明的方式做到这一点吗?

【问题讨论】:

    标签: php validation laravel


    【解决方案1】:

    使用“保释”属性。它将在第一次失败后停止验证。

    $this->validate($request, [
        'title' => 'bail|mimes:jpg,png,pdf,doc,docx|validate_file',
    ]);
    

    https://laravel.com/docs/5.2/validation#validation-quickstart搜索“保释金”

    【讨论】:

    • 不错。正是我需要的。
    • 应该指出的是,bail 仅在单个值的级别上起作用,在这种情况下仅适用于 title 字段。如果之后还有其他字段验证,它们的验证仍然会进行。
    • 这不是问题的正确答案,如果第二次验证的字段不同会怎样?
    • @PHPLover 你这是什么意思?
    猜你喜欢
    • 2021-09-14
    • 2021-04-18
    • 1970-01-01
    • 2019-06-13
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    相关资源
    最近更新 更多