【问题标题】:Laravel Validation If checkbox ticked then Input text is required?Laravel 验证如果勾选了复选框,则需要输入文本?
【发布时间】:2016-07-22 19:59:14
【问题描述】:

我一直在阅读 Laravel 验证文档。我不清楚如何组合两个规则。

例如:

<input type="checkbox" name="has_login" value="1">

<input type="text" name="pin" value="">

如果选中has_login 复选框,则需要输入文本pin 值。

如果has_login 未勾选,则不需要输入文本pin

Laravel 验证:

public function rules()
{
    return [
          'has_login' => 'accepted',
          'pin' => 'required',
    ];
}

【问题讨论】:

    标签: laravel laravel-5 laravel-5.2


    【解决方案1】:

    使用 required_with 或 required_if

    required_with:foo,bar

    只有在存在任何其他指定字段时,验证中的字段才必须存在且不能为空。

    return [
          'has_login' => 'sometimes',
          'pin'       => 'required_with:has_login,on',
    ];
    

    --

    required_if:anotherfield,value

    如果 anotherfield 字段等于任何值,则验证中的字段必须存在且不为空。

    return [
          'has_login' => 'sometimes',
          'pin'       => 'required_if:has_login,on',
    ];
    

    --

    https://laravel.com/docs/5.2/validation

    --

    另外,如果 has_login 复选框未选中,则不会作为表单提交的一部分发送

    【讨论】:

    • 改善您的答案。您需要提供示例代码,而不是从文档中复制和粘贴。
    • @I'll-Be-Back 添加:)
    • 不知道这种方法。谢谢。
    • @I'll-Be-Back 不是文档,当我发布复选框值并使用 $request-&gt;all() 查看数据时,如果勾选了复选框,则值为 on,如果没有勾选然后它不会出现在提交的输入数组中,如果这是错误的,请告诉我,我会更新我的答案
    • 由于在这个问题中只有一个字段需要检查,required_if 是最好的选择。
    猜你喜欢
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多