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

I'l*_*ack 5 laravel laravel-5 laravel-5.2

我一直在阅读Laravel验证文档.我不清楚如何结合两条规则.

例如:

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

<input type="text" name="pin" value="">
Run Code Online (Sandbox Code Playgroud)

如果has_login勾选了复选框,pin则需要输入文本值.

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

Laravel验证:

public function rules()
{
    return [
          'has_login' => 'accepted',
          'pin' => 'required',
    ];
}
Run Code Online (Sandbox Code Playgroud)

H H*_*H H 9

使用required_with或required_if

required_with:foo,bar

验证字段必须存在且仅在存在任何其他指定字段时才为空.

return [
      'has_login' => 'sometimes',
      'pin'       => 'required_with:has_login,on',
];
Run Code Online (Sandbox Code Playgroud)

-

required_if:anotherfield,value

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

return [
      'has_login' => 'sometimes',
      'pin'       => 'required_if:has_login,on',
];
Run Code Online (Sandbox Code Playgroud)

-

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

-

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