我想注册用户,我有3个领域的形式;登录名、密码和确认密码。在数据库中,我有login、password和role列。因此,我想插入默认角色为User的数据库用户。下面的代码显示错误SQLSTATE[HY000]: General error: 1364 Field 'role' doesn't have a default value。如何解决此问题?
class UserObserver
{
/**
* Handle the "User" created event.
*
* @param User $user
* @return void
*/
public function creating(User $user)
{
if (is_null($user->role)) {
$user->role= "User";
$user->save();
}
}
}
2条答案
按热度按时间pod7payv1#
您需要使用SQL客户端添加/修改“角色”列,可能您尚未为其定义默认值,并且该列为“非空”,这意味着如果该列为空,则无法插入行。
另一种选择是在create函数中添加类似的内容:
nimxete22#
如果您只创建角色为“用户”的用户,则可以在创建用户时添加此行;
也可以使用观察者: