Laravel 5 вставить строку с внешним ключом ОШИБКА - PullRequest
0 голосов
/ 14 января 2020

При попытке добавить новую запись в базу данных Laravel возвращается сообщение об ошибке: «сообщение»: «SQLSTATE [23000]: нарушение ограничения целостности: 1048 Столбец« usu_idrol »не может быть пустым (SQL: вставить в usuarios ( cedula, nombre, tele1, tele2, correo, direccion, user_name, user_pass, fecha_ingreso, estado, usu_idrol) значений (4477789965, alejo, 6326595415, 7894560, prueba@prueba.com, calle 1234, Prueba, 789456, 2020-01-13, 1,?)) ",

У меня уже есть база данных, я не использую миграции

это код:

Контроллер

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();


}

Модель

Класс Usuar ios расширяет Model {protected $ primaryKey = 'idusuar ios';

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 Ответ

0 голосов
/ 14 января 2020

Ваша ошибка очень ясна в отношении того, что это за ошибка:

Столбец 'usu_idrol' не может быть пустым

С вашего контроллера $request->usu_idrol возвращает NULL .

Вы можете проверить / проверить значение, поместив dd($request->usu_idrol) или используя инструменты разработки вашего браузера, чтобы увидеть, что ваш компонент Vue отправляет как usu_idrol в полезной нагрузке запроса.

...