如果我有一个 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 文档中找到更多相关信息 此处;