0

所以我创建了循环生成的单选按钮:

<div class="custom-control custom-radio guest-form">
    @foreach(config('const.res_site') as $id => $res)
    <div class="form-radio">
        <input class="custom-control-input" type="radio" onchange="otherResSite({{$id}})" id="{{$res}}" value="{{$id}}" 
            name="reservation_site" {{ old("reservation_site") == $id ? "checked" : "" }}>
        <label for="{{ $res }}" class="custom-control-label">{{ $res }}</label>
    </div>
    @endforeach
    <div class="otherField" id="ifOtherSite" class="otherSite" style="display: {{ old('reservation_site') == 4 ? 'display:inline-flex' : 'none' }}">
        <input type='text' class="form-control" id='otherSite' name='otherSite' value="{{ old('otherSite', '') }}"><br>
    </div>
</div>
@if ($errors->has('otherSite'))
    <div class="form-group">
        <p class="text-danger">{{ $errors->first('otherSite') }}</p>
    </div>
@endif

常量.php

'res_site' => [
    0 => 'site1',
    1 => 'site2',
    2 => 'other',
],

otherSite如果选择的选项是其他选项,则此选项用于验证该值。它现在运行良好,但返回的验证消息是这样的:

当预订站点为 2 时,其他站点字段为必填项。

我的验证器是这样的:

return [
    'reservation_site' => ['required'],
    'otherSite' => ['required_if:reservation_site,2'],
]

现在,我怎样才能使其返回消息为

当预订站点是其他站点时,需要其他站点字段

有什么办法可以做到吗?

4

1 回答 1

0

好的。如果有一天有人可能需要这个,我是这样做的:

 <input class="custom-control-input" type="radio" id="{{$res}}" value='{{$id == 4 ? "other" : $id}}'>

在我的验证中:

return [
        'reservation_site' => ['required'],
        'otherSite' => ['required_if:reservation_site,other'],
]
于 2019-10-11T12:35:06.673 回答