Php SQLSTATE[HY000]:一般错误:1364字段';角色';不';没有默认值

Php SQLSTATE[HY000]:一般错误:1364字段';角色';不';没有默认值,php,laravel,Php,Laravel,我试图添加2列,即“角色”和“状态”。 “角色”是varchar,“状态”是布尔,进入用户模型 迁移完成后,数据库也显示了这两列 我已经添加了角色和状态并显示SQLSTATE[HY000]:一般错误:1364字段“角色”没有默认值 User.php protected $fillable = [ 'name', 'email', 'password', 'role', 'status', ]; } protected $hidden = [ 'password', 'remem

我试图添加2列,即“角色”和“状态”。 “角色”是varchar,“状态”是布尔,进入用户模型

迁移完成后,数据库也显示了这两列

我已经添加了角色状态并显示SQLSTATE[HY000]:一般错误:1364字段“角色”没有默认值

User.php

protected $fillable = [
    'name', 'email', 'password', 'role', 'status',
];

}
protected $hidden = [
    'password', 'remember_token',
];
protected $fillable = [
   'role','status'
];
}


将“角色”和“状态”添加到User.php的$filleble数组中。

将“角色”和“状态”添加到User.php的$filleble数组中。

在创建操作中将这些可填充字段添加到模型中

protected $fillable =[...,'role','status'];

您得到一个错误,因为您将这些字段作为默认值
,因此这些字段是必需的

在创建操作中在模型中添加这些可填充字段这些字段可以填充

protected $fillable =[...,'role','status'];

您将得到一个错误,因为您将这些字段作为默认值
,因此这些字段是必需的

在模型文件中添加可填充或保护字段

protected$guarded=[]


在模型文件中添加可填充或保护

protected$guarded=[]


用户
模型中添加
角色
状态

User.php

protected $fillable = [
    'name', 'email', 'password', 'role', 'status',
];

}
protected $hidden = [
    'password', 'remember_token',
];
protected $fillable = [
   'role','status'
];

这将使您能够在数据库的
角色
状态
列中添加数据。

用户
模型中添加
角色
状态

User.php

protected $fillable = [
    'name', 'email', 'password', 'role', 'status',
];

}
protected $hidden = [
    'password', 'remember_token',
];
protected $fillable = [
   'role','status'
];

这将使您能够在数据库中的
角色
状态
列中添加数据。

出现此错误是因为您尝试为
$user->role
保存的值为
,并且该字段在数据库中是必需的(不可为空),并且没有默认值(提交
null
时使用默认值)

可能的解决办法:

  • 使数据库中的角色为空
  • $user->save()之前设置
    $user->role='somevalue'
    (即使是空字符串
    '
  • 在数据库中的列上设置默认值

出现此错误是因为您尝试为
$user->role
保存的值为
null
,并且该字段在数据库中是必需的(不可为null),并且没有默认值(提交
null
时使用默认值)

可能的解决办法:

  • 使数据库中的角色为空
  • $user->save()之前设置
    $user->role='somevalue'
    (即使是空字符串
    '
  • 在数据库中的列上设置默认值

你的代码在哪里?向我展示
模型
代码并编辑你的问题(删除图像并输入错误)好的。已经发布模型代码。添加表格结构的屏幕截图好的。这里是表格结构。你的代码在哪里?向我展示
模型
代码并编辑你的问题(删除图像并输入错误)好的。已经发布了模型代码。添加表结构的屏幕截图好的。这里是表结构。我可以知道这是怎么用的吗?如果使用guarded只提到受限列,例如id为auto increment,则可以表示protected$guarded=['id'];如果要插入表中的所有列,请使用protected$guarded=[];如果您使用的是可填充的提及所有列名称,我可以知道它的用途吗?如果使用保护的仅提及限制列,例如id为自动递增,则可以表示受保护的$guarded=['id'];如果您要插入表中的所有列,请使用受保护的$guarded=[];如果您使用的是可填充的提及所有列名称