【问题标题】:Laravel - form validation to pass only if certain field is emptyLaravel - 表单验证仅在某些字段为空时通过
【发布时间】:2020-03-01 20:58:06
【问题描述】:

所以我正在构建一个表单,我需要特定字段为空。

他们返回一个空字符串,我从其他类似的问题中寻找

\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class

我相信在Kernel.php中默认被注释掉了。

我不想改变它的行为,因为它是一个全局中间件。

我尝试让它们可以为空,string|sometimespresent|max:0 但这些都没有给我想要的结果。我希望只有在字段为空时才能通过验证。

任何帮助将不胜感激。

【问题讨论】:

  • 要么对此进行自定义验证,要么使用正则表达式验证:laravel.com/docs/master/validation#rule-regex
  • 顺便\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,默认不注释。
  • 感谢@Paladin 指点我,设法用'regex:/^\s*$/'解决了我的问题

标签: laravel forms validation request


【解决方案1】:

所以据我了解,如果表单中的其他字段为空,您是否需要特定字段?为此,您可以像这样在Request validation 中使用required_without 属性:

public function rules()
    {
        return [
            'filed_name' => 'required_without:other_field_name',
        ];
    }

    public function messages()
    {
        return [
            'filed_name.required_without' => 'filed_name is required.',
        ];
    }

更多关于官方documentation的验证。

【讨论】:

  • 我希望 2 个不同的字段为空,但它们没有连接。所以我必须对他们两个都使用 1 规则。相信 required_if 在这里没有帮助。这些字段不是直接必需的,只需为空即可。
猜你喜欢
  • 2015-02-05
  • 2011-08-06
  • 2018-10-06
  • 2017-03-11
  • 1970-01-01
  • 1970-01-01
  • 2015-08-28
  • 1970-01-01
  • 2021-09-14
相关资源
最近更新 更多