Laravel验证如果选中复选框,则需要输入文本?

时间:2016-07-22 11:43:57

标签: laravel laravel-5 laravel-5.2

我一直在阅读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',
    ];
}

1 个答案:

答案 0 :(得分:7)

使用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,则不会将其作为表单提交的一部分发送