Laravel 5.2 - 将值插入用户列不起作用

时间:2016-04-17 15:50:26

标签: php laravel laravel-5 eloquent laravel-5.2

我创建了一个简单的用户注册应用程序:

notifyDataSetChanged()

当然我为它添加了迁移:

$confirmation_key = str_random(100);
$data = [
    'email' => $post['email'],
    'password' => Crypt::encrypt($post['password']),
    'confirmation_key' => $confirmation_key
];
User::create($data);

用户已成功添加到数据库中,但确认密钥仍为null,未更改。 其他问题:如果我想在User表中添加其他列,该怎么办?我需要做什么?

1 个答案:

答案 0 :(得分:3)

您需要确保已将confirmation_key添加到$fillable模型的User属性中,如下所示:

protected $fillable = ['email','password','confirmation_key'];

如果要添加其他列,则需要创建新的迁移并运行它,如果要使此列可填充,则需要将其添加到$fillable模型的User属性。

修改

如果您想使用create fill方法使任何列无法填充,您可以将其添加到表中,并且不可能简单地执行此操作:

User::create($data);

在这些情况下,你需要这样的东西:

// here you fill fillable data
$user = new User($data);
// this way you can fill properties that are not fillable
$user->some_not_fillable_property = 'some value';
// now you save it to database
$user->save();