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

Posted

技术标签:

【中文标题】Laravel 5插入带有外键错误的行【英文标题】:Laravel 5 insert row with a foreign key ERROR 【发布时间】:2020-04-30 16:10:35 【问题描述】:

当我尝试向数据库添加新记录时,Laravel 返回错误: “消息”:“SQLSTATE [23000]:完整性约束违规:1048列'usu_idrol'不能为空(SQL:插入usuarioscedulanombretele1tele2correouser_nameuser_passfecha_ingresoestadousu_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();



型号

Usuarios 类扩展模型 受保护的 $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】:

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

列“usu_idrol”不能为空

从您的控制器$request->usu_idrol 正在返回NULL

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

【讨论】:

以上是关于Laravel 5插入带有外键错误的行的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5 与外键相关的迁移错误

插入带有外键的查询

一般错误:1215 无法添加外键约束,Laravel 5 & MySQL

laravel 5.4 迁移错误:150“外键约束格式不正确”

SQLSTATE[HY000]:一般错误:1215 无法添加外键约束 Laravel 5.8

SQLSTATE [23000]:完整性约束违规:1452 无法添加或更新子行:外键约束失败 - Laravel