问题描述
它只是 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,]);