Php 带有复选框的Laravel验证

Php 带有复选框的Laravel验证,php,laravel,laravel-5,laravel-5.3,Php,Laravel,Laravel 5,Laravel 5.3,如果未选中use\u shipping,且用户未在shipping\u note中输入值,则验证应已通过,但已失败 <input type="hidden" name="use_shipping" value="0"> <input type="checkbox" name="use_shipping" value="1" {{ old('use_shipping', $delivery->use_shipping) ? 'checked="checked"' : ''

如果未选中
use\u shipping
,且用户未在
shipping\u note
中输入值,则验证应已通过,但已失败

<input type="hidden" name="use_shipping" value="0">
<input type="checkbox" name="use_shipping" value="1" {{ old('use_shipping', $delivery->use_shipping) ? 'checked="checked"' : '' }}>

带有验证状态的
必需\u:

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

由于您的隐藏输入,
shipping\u note
字段将始终存在。由于该字段即使在复选框未选中时也存在,因此始终会触发带有
验证的
required\u

您最可能需要的是
required\u if
验证,其中说明:

必填\u如果:另一个字段,值,…

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


这将导致只有当
use\u shipping
的值为
1
时才需要
shipping\u note
,只有选中复选框时才会出现此情况。

带有
验证的
required\u状态:

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

由于您的隐藏输入,
shipping\u note
字段将始终存在。由于该字段即使在复选框未选中时也存在,因此始终会触发带有
验证的
required\u

您最可能需要的是
required\u if
验证,其中说明:

必填\u如果:另一个字段,值,…

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


这将导致只有当
use\u shipping
的值为
1
时才需要
shipping\u note
,只有选中复选框时才会出现此情况。

它给了您什么错误消息?它告诉你失败的原因了吗?当
使用配送时,我收到的错误消息告诉我输入
配送通知
没有被勾选。它给了你什么错误消息?它告诉你失败的原因了吗?当
use\u shipping
时,我收到的错误消息告诉我输入
shipping\u note
没有被勾选谢谢你的回答。不幸的是,
“必需”\u如果:使用装运,1',
不起作用。还是和以前一样的行为。@我会回来的,你确定吗?我刚刚测试了
验证器::make(['use\u shipping'=>'0','shipping\u note'=>'','use\u shipping'=>'boolean','shipping\u note'=>'必选项如果:use\u shipping,1'])->通过()
,它返回
true
(验证通过)。抱歉,我测试的页面错误-它确实在工作,谢谢你:)谢谢你的回答。不幸的是,
“必需”\u如果:使用装运,1',
不起作用。还是和以前一样的行为。@我会回来的,你确定吗?我刚刚测试了
Validator::make(['use\u shipping'=>'0','shipping\u note'=>'','use\u shipping'=>'boolean','shipping\u note'=>'必选项(如果:use\u shipping,1'])->通过()
,它返回
true
(验证通过)。对不起,我在错误的页面上进行了测试-它确实在工作,谢谢:)
<input type="text" name="shipping_note" value="">
public function rules()
{

    return [
        'use_shipping'  => 'boolean',
        'shipping_note' => 'required_with:use_shipping',
    ];
}
public function rules()
{
    return [
        'use_shipping'  => 'boolean',
        'shipping_note' => 'required_if:use_shipping,1',
    ];
}