gpt4 book ai didi

mysql - 字符串未保存在 DB varchar 列中

转载 作者:行者123 更新时间:2023-11-29 12:22:35 25 4
gpt4 key购买 nike

我有这段代码在我的表中插入一行:

$activation_code = str_random(60);
$user = User::create([
'email' => $input['email'],
'password' => Hash::make($input['password']),
'name' => $input['name'],
'surname' => $input['surname'],
'bio' => $input['bio'],
'birthdate' => $input['birthdate'],
'gender' => $input['gender'],
'smoker' => (int)$input['smoker'],
'activation_code' => $activation_code
]);

这是来自模型类:

protected $hidden = [
'id',
'password',
'password_temp',
'active',
'activation_code'
];

protected $fillable = [
'email',
'password',
'name',
'surname',
'bio',
'birthdate',
'gender',
'driving_style',
'smoker',
'university'
];

除了 activation_code 之外,所有其他字段都已正确插入。

我检查了数据库中的 activation_code 列数千次,名称、类型、大小是否正确等。我尝试插入一个虚拟字符串,例如 ifohsdfiuhsfhdsiofdhs 和它仍然没有插入它。我转储了随机生成的字符串,它是一个 string(60),因此它不是空的。

我尝试在数据库中手动插入该字符串,效果很好。

我没有收到任何错误...我只是不知道问题是什么。

最佳答案

您的fillable数组需要包含activation_codehiddenfillable 属性不共享关系。您的 activation_code 数据不会添加到模型中,因为它不在“白名单”(fillable)上。

hidden 用于隐藏您在场景中正确使用的敏感数据。

您的fillable数组应如下所示:

protected $fillable = [
'email',
'password',
'name',
'surname',
'bio',
'birthdate',
'gender',
'driving_style',
'smoker',
'university',
'activation_code'
];

关于mysql - 字符串未保存在 DB varchar 列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28797265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com