Laravel Eloquent - 通过传递 JSON 变量插入数据库


Laravel Eloquent - Insert to database by passing a JSON variable

如果我有一个 JSON 变量,每个键都与表列匹配,有没有办法传递它并将其保存到数据库中?

例如,如果我有:

{
    "name" : "John Smith",
    "email" : "john.smith@gmail.com",
    "phone" : "111-111-1111"
}

而我的表User只有这些列(我知道,我知道!我没有定义密码)。我可以以某种方式使用该变量来保存新条目,还是需要逐列设置每列?

我认为没有办法直接做到这一点,但是您可以将JSON转换为关联数组:

 $userData = json_decode("{
    "name" : "John Smith",
    "email" : "john.smith@gmail.com",
    "phone" : "111-111-1111"
}", true);

然后,您可以使用User::create($userData);创建新条目。

为此,您还需要设置模型以允许为以下字段分配质量:

protected $fillable = ['name', 'email', 'phone'];

您可以在官方 Laravel 文档中找到更多相关信息 此处;