字符串未保存在DB varchar列中

时间:2015-03-01 18:22:20

标签: mysql laravel laravel-4

我已经在我的表格中插入了一行代码:

$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),所以它不是空的。

我尝试在数据库中手动插入该字符串,但工作正常。

我没有任何错误......我只是对问题是什么一无所知。

1 个答案:

答案 0 :(得分:1)

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

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

您的fillable数组应如下所示:

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