0
votes

When I trying add new record to database Laravel returned error: "message": "SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'usu_idrol' cannot be null (SQL: insert into usuarios (cedula, nombre, tele1, tele2, correo, direccion, user_name, user_pass, fecha_ingreso, estado, usu_idrol) values (4477789965, alejo, 6326595415, 7894560, [email protected], calle 1234, Prueba, 789456, 2020-01-13, 1, ?))",

i already have database i don't use migrations

this is the code:

Controller

public function store(Request $request)
{
    //
    $usuario = new Usuarios();
    $usuario->cedula = $request ->cedula;
    $usuario->nombre = $request ->nombre;
    $usuario->tele1 = $request ->tele1;
    $usuario->tele2 = $request ->tele2;
    $usuario->correo = $request ->correo;
    $usuario->direccion = $request ->direccion;
    $usuario->user_name = $request ->user_name;
    $usuario->user_pass = $request ->user_pass;
    $usuario->fecha_ingreso = $request ->fecha_ingreso;
    $usuario->estado = '1';
    $usuario->usu_idrol = $request ->usu_idrol;
    $usuario->save();


}

Model

class Usuarios extends Model { protected $primaryKey = 'idusuarios';

protected $fillable = ['cedula','nombre','tele1,tele2','correo','direccion','user_name','user_pass','fecha_ingreso','estado','usu_idrol'];

public function roles(){
    // un usuario pertenece a un rol
    return $this->belongsTo('App\Roles');

}

public function setUpdatedAt($value)
{
  return NULL;
}


public function setCreatedAt($value)
{
  return NULL;
}

}

Vue

  registrarOperador() 
      {
        let me  = this ;

        axios.post('/usuario/registrar',{
          'cedula':this.cedula,
          'nombre':this.nombre,
          'tele1':this.tele1,
          'tele2':this.tele2,
          'correo':this.correo,
          'direccion':this.direccion,
          'user_name':this.user_name,
          'user_pass':this.user_pass,
          'fecha_ingreso':this.fecha_ingreso,
          'estado':this.estado,
          'usu_idrol':this.usu_idrol


        }).then(function (response) {
          me.cerraModal();
          me.listarOperador();
        }).catch(function (error) {
          console.log(error.message);
        });

      },
1

1 Answers

0
votes

Your error is very explicit about what the error is:

Column 'usu_idrol' cannot be null

From your controller $request->usu_idrol is returning NULL.

You could check/verify the value by placing a dd($request->usu_idrol), or using your browser Dev Tools to see what your Vue component is sending as usu_idrol in the request payload.