Php SQLSTATE[HY000]:一般错误:1364字段';角色';不';没有默认值
我试图添加2列,即“角色”和“状态”。 “角色”是varchar,“状态”是布尔,进入用户模型 迁移完成后,数据库也显示了这两列 我已经添加了角色和状态并显示SQLSTATE[HY000]:一般错误:1364字段“角色”没有默认值 User.phpPhp 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
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=[];如果您使用的是可填充的提及所有列名称