在Laravel中,当验证出现错误时,可以使用重定向来返回到特定选项卡。具体实现的步骤如下:
public function validateForm(Request $request)
{
$validatedData = $request->validate([
'field1' => 'required',
'field2' => 'required',
]);
// 如果验证失败,将错误信息存储到会话中
if ($validator->fails()) {
return redirect()->back()->withErrors($validator)->withInput();
}
// 验证通过,执行其他操作
// ...
}
<ul class="nav nav-tabs">
<li class="{{ $errors->has('field1') ? 'active' : '' }}"><a href="#field1" data-toggle="tab">Field 1</a></li>
<li class="{{ $errors->has('field2') ? 'active' : '' }}"><a href="#field2" data-toggle="tab">Field 2</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane {{ $errors->has('field1') ? 'active' : '' }}" id="field1">
<div class="form-group">
<label for="field1">Field 1:</label>
<input type="text" name="field1" class="form-control" value="{{ old('field1') }}">
@if ($errors->has('field1'))
<span class="help-block">{{ $errors->first('field1') }}</span>
@endif
</div>
</div>
<div class="tab-pane {{ $errors->has('field2') ? 'active' : '' }}" id="field2">
<div class="form-group">
<label for="field2">Field 2:</label>
<input type="text" name="field2" class="form-control" value="{{ old('field2') }}">
@if ($errors->has('field2'))
<span class="help-block">{{ $errors->first('field2') }}</span>
@endif
</div>
</div>
</div>
在这个示例中,使用了Bootstrap的选项卡组件来显示选项卡,并根据验证错误来添加active
类。
Route::post('/form', 'FormController@validateForm')->name('form.validate');
这样,当提交表单时,如果验证失败,将会重定向回原来的表单,并且选项卡中对应的字段会显示验证错误信息。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云