php - 未定义的数组键 - Laravel/Fortify 寄存器
问题描述
只是它在 Laravel 中的一个注册页面。如果它的老师不是学生,用户必须选中复选框。
因此,我尝试使用值 1 教师 0 学生,但我不知道如何在控制器中获取此值。
也尝试了下面的代码('role_id' => $input['role_id'],
),当检查时它在数据库上返回“on”但未检查它会引发错误
未定义的数组键“role_id”
注册查看..
<div class="form-group form-check">
<input type="checkbox" class="form-check-input" id="role_id" name="role_id" value="0"
<label class="form-check-label" for="exampleCheck1">Teacher</label>
</div>
强化控制器..
/**
* Validate and create a newly registered user.
*
* @param array $input
* @return \App\Models\User
*/
public function create(array $input)
{
Validator::make($input, [
'name' => ['required', 'string', 'max:255'],
'email' => [
'required',
'string',
'email',
'max:255',
Rule::unique(User::class),
],
'password' => $this->passwordRules(),
])->validate();
return User::create([
'name' => $input['name'],
'email' => $input['email'],
'password' => Hash::make($input['password']),
'role_id' => $input['role_id'],
]);
}
}
解决方案
关闭/>
输入复选框
<div class="form-group form-check">
<input type="checkbox" class="form-check-input" id="role_id" name="role_id" value="1"/>
<label class="form-check-label" for="exampleCheck1">Teacher</label>
</div>
并在控制器中
return User::create([
'name' => $input['name'],
'email' => $input['email'],
'password' => Hash::make($input['password']),
'role_id' => $input['role_id']??0,
]);
推荐阅读
- python - Python中的高阶函数
- java - 如何安全地从列表中删除元素
- python - 刷新标准输出时打印子进程索引
- angular - 中型编辑器,工具栏在选择文本时不显示
- flutter - 当不关注 Flutter 中的字段时,如何使图标在文本字段中可见?
- laravel-8 - 基于角色的多重身份验证 VS 多重保护身份验证
- python - 如何优化此代码,因为此代码通过 Time limit exceeded ,不同测试用例的运行时错误?
- wechat - 如何为微信小程序制作联系表
- asp.net-core - 具有多个身份验证方案的 SecurityTokenSignatureKeyNotFoundException
- azure - ServiceBusReceivedMessage 的单元测试