He añadido 2 entradas de casilla de verificación en el fichero de register.blade.php. Quiero uno de ellos a ser necesaria, es decir, el usuario debe seleccionar una o la otra, de lo contrario me gustaría mostrar algún tipo de mensaje de error como "Estos campos no pueden estar vacíos". He intentado añadir una matriz llamada ROLE_ID [] en ambos campos de entrada. También he añadido value = "1" en la primera entrada y el valor = "2" en la segunda entrada, porque quiero 1 o 2 para entrar en mi tabla de usuarios en la columna llamada ROLE_ID, porque yo he creado una tabla Roles con 2 registros, 1 es demandante de empleo y 2 es el empleador y, obviamente, hay una relación aquí. Así que, básicamente, si el usuario selecciona la primera entrada que es "Soy un buscador de trabajo", que tiene un valor de 1, 1 entrarán en la columna ROLE_ID en la tabla de usuarios en la base de datos y la misma idea de casilla 2 "
RegisterController.php archivo:
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 archivo:
<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">
<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>
Hola usuario del modelo no viene con role_id
por defecto. Debería editar App\User.php
y en protected $fillable
, add 'role_id'
.
Inténtalo de nuevo. Esta vez el valor de rule_id
debe ser masiva asignado por el modelo de la base de datos.
EDITAR # 1: En el formulario, utilice:
<input class="form-check-input" type="checkbox" name="role_id" value="1">
<input class="form-check-input" type="checkbox" name="role_id" value="2">
Usted no matriz necesidad si sólo el 1 valor debe ser aprobada. Y por cierto, una entrada de radio debe funcionar incluso mejor ya que sólo una entrada puede seleccionarse.