如何在 register.blade.php laravel 中验证和插入多个复选框的数据?

我在 register.blade.php 文件中添加了 2 个复选框输入。我希望其中一个是必需的,即用户必须选择一个或另一个,否则我想显示某种错误消息,例如“这些字段不能为空”。我尝试在两个输入字段上添加一个名为 role_id[] 的数组。我还在第一个输入上添加了 value="1",在第二个输入上添加了 value="2",因为我希望 1 或 2 进入我的用户表到名为 role_id 的列中,因为我已经创建了一个角色表有 2 条记录,1 是求职者,2 是雇主,显然这里有关系。因此,基本上,如果用户选择第一个输入“我是求职者”,其值为 1,则 1 将进入数据库用户表中的 role_id 列,复选框 2 的想法相同“


RegisterController.php 文件:


protected function validator(array $data)

    {

        return Validator::make($data, [

            'name' => ['required', 'string', 'max:255'],

            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],

            'password' => ['required', 'string', 'min:8', 'confirmed'],

            'role_id' => ['required'],

        ]);

    }


    protected function create(array $data)

    {

        return User::create([

            'name' => $data['name'],

            'email' => $data['email'],

            'password' => Hash::make($data['password']),

            'role_id' => $data['role_id'],

        ]);

    }

register.blade.php 文件:


<div class="form-group row">

                                    <div class="col-md-8 offset-md-2 text-md-right">

                                        <div class="form-check form-check-inline">

                                            <input class="form-check-input" type="checkbox" name="role_id[]" id="job-seeker" value="1">

                                            <label class="form-check-label" for="job-seeker">I'm a Job Seeker</label>

                                        </div>

                                        <div class="form-check form-check-inline">

                                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

                                            <input class="form-check-input" type="checkbox" name="role_id[]" id="employer" value="2">

                                            <label class="form-check-label" for="employer">I'm an Employer</label>

                                        </div>

                                    </div>

                                </div>


眼眸繁星
浏览 101回答 1
1回答

白衣非少年

嗨用户模型默认情况下不附带role_id。您应该编辑App\User.php并protected $fillable添加'role_id'.再试一次。这次的值rule_id应该由模型大量分配给数据库。编辑#1:在表格中,使用:<input&nbsp;class="form-check-input"&nbsp;type="checkbox"&nbsp;name="role_id"&nbsp;value="1"> <input&nbsp;class="form-check-input"&nbsp;type="checkbox"&nbsp;name="role_id"&nbsp;value="2">如果只需要传递 1 个值,则不需要数组。顺便说一句,RADIO 输入应该会更好,因为只能选择一个输入。
打开App,查看更多内容
随时随地看视频慕课网APP