mysql - Laravel 5 插入带有外键错误的行

标签 mysql vue.js laravel-5 axios

当我尝试向数据库添加新记录时,Laravel 返回错误: "message": "SQLSTATE[23000]: 违反完整性约束: 1048 列 'usu_idrol' 不能为空 (SQL: insert into usuarios (cedula, nombre, tele1, tele2, correo, direccion, 用户名, user_passfecha_ingresoestadousu_idrol)值(4477789965、alejo、6326595415、7894560、prueba@prueba.com , calle 1234, 普鲁巴, 789456, 2020-01-13, 1, ?))",

我已经有数据库,但不使用迁移

这是代码:

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


}

型号

Usuarios 类扩展了模型 { 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);
        });

      },

最佳答案

您的错误非常明确地说明了错误是什么:

Column 'usu_idrol' cannot be null

从您的 Controller $request->usu_idrol正在返回NULL .

您可以通过放置 dd($request->usu_idrol) 来检查/验证该值,或使用浏览器开发工具查看 Vue 组件发送的内容为 usu_idrol在请求负载中。

关于mysql - Laravel 5 插入带有外键错误的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59725221/

相关文章:

java - 如何摆脱jframe中的空指针异常?

php - mysql join 当字段是表名和主键时

javascript - Vue - 使用 refs 来聚焦元素目标

php - Laravel - 删除一行(表)

java - 内部异常 : com. mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:未知错误 1049

没有重复键的 MySQL INSERT/UPDATE

javascript - VueJs : How to pass a 'computed function' value from child component to the parent component using $emit(optionalPayload) and $on?

javascript - Vue.JS中获取firebase firestore后如何生成数据

php - Laravel 5 - 找不到 Application::shutdown() 函数,是否有其他解决方案?

php - 我如何从 laravel 5.2 中的查询生成器的 block 函数中获取变量?