php - 在 laravel 5.4 中选择下拉列表的选定值

标签 php laravel laravel-5.4

我有一个名为 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/

相关文章:

php - Laravel - 注册装饰器

php - 指定的长度修饰符非法

php - 同时提交 Stripe 和自定义表单

php - php中的循环问题

php - Laravel 1048 列在存储数据时不能为 NULL

PHP Laravel foreach 不修改值

php - phpbot在certbot工作时尽早执行

php - 在 Laravel 中,我可以创建一个没有 new 的新模型实例吗?

php - Laravel 黄昏错误 : Failed to connect to localhost port 9515: Connection refused

php - laravel 5.4 中如何匹配两个表并将其插入到另一个表中?