如何解决未定义的数组键 - 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','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,]);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。