我有一个名为 designation 的下拉菜单,用户可以在其中选择一个,在提交后,如果出现错误,我想选择所选的 designation。
我在 laravel 5.4 中使用它。
Controller
$info = DB::table("designation")
->where('status','=',1)
->pluck("name","id");
return view('regUser.add',['check' => 'userList','designation' => $info]);
查看文件
<div class="form-group {{ $errors->has('designation') ? ' has-error' : '' }}">
<label for="designation">Designation</label>
<select id="designation" name="designation" class="form-control">
<option value="">--- Select designation ---</option>
@foreach ($designation as $key => $value)
<option value="{{ $key }}" />{{ $value }}</option>
@endforeach
</select>
@if ($errors->has('designation'))
<span class="help-block">
<strong>{{ $errors->first('designation') }}</strong>
</span>
@endif
</div>
现在,如果验证器发现了一些错误,那么我想选择之前选择的那个。 我怎样才能在 Laravel 5.4 中实现这一目标。
提交表单后进入addUserInformation函数,我在其中验证具有这段代码的用户信息
public function addUserInformation(Request $request){
$this->validate($request, [
'name' => 'required|string|min:5',
'email' => 'required|string|email|unique:users,email',
'designation' => 'required|exists:designation,id',
'password' => 'required|min:6',
'confirm_password' => 'required|same:password',
'userimage' => 'required|image',
]);
$selectedID = $request->input('designation');
}
最佳答案
Larvel 在验证错误时将输入传回。您可以使用 old
辅助函数来获取表单的先前值。一个简单的比较就可以解决问题。
<div class="form-group {{ $errors->has('designation') ? ' has-error' : '' }}">
<label for="designation">Designation</label>
<select id="designation" name="designation" class="form-control">
<option value="">--- Select designation ---</option>
@foreach ($designation as $key => $value)
<option value="{{ $key }}" {{ old('designation') == $key ? 'selected' : ''}}>{{ $value }}</option>
@endforeach
</select>
@if ($errors->has('designation'))
<span class="help-block">
<strong>{{ $errors->first('designation') }}</strong>
</span>
@endif
</div>
关于php - 在 laravel 5.4 中选择下拉列表的选定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44238536/