Laravel-至少选中了一个复选框

时间:2019-09-30 14:27:01

标签: javascript jquery html laravel

所以我有这段代码可以获取所有复选框文本并生成与数据库中一样多的代码,但是我希望在用户保存设置之前至少选中一个复选框。

<dl id="checkboxes">
                            @if($user->services)
                                @foreach($services as $service)
                                    <dd>
                                        <input type="checkbox" id="chk{{ $service->id }}"  name="services[]" value="{{ $service->id }}"  {{  in_array($service->id, $user->services) ? 'checked' : ''}} />
                                        <label for="chk{{ $service->id }}">{{ $service->name }}</label>
                                    </dd>
                                @endforeach
                            @else
                                @foreach($services as $service)
                                    <dd>
                                        <input type="checkbox" id="chk{{ $service->id }}"  name="services[]" value="{{ $service->id }}" />
                                        <label for="chk{{ $service->id }}">{{ $service->name }}</label>
                                    </dd>
                                @endforeach
                            @endif
                        </dl>

而且,由于这是一个很大的形式(配置文件设置),所以按钮位于最后。

<button type="submit" class="custom-save-submt">@lang('Guardar')</button>

1 个答案:

答案 0 :(得分:0)

您可以像这样在控制器中获取复选框值:

$services = Input::get('services');

然后如果$services返回一个空数组,则要重定向:

if (!$services) {
    return Redirect::back()->withErrors(['msg', 'Please select at least 1 service.']);
}

或者,使用Laravel验证:

$validatedData = $request->validate([
    'services' => 'required',
]);