如果我有一个 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 官方文档中找到更多相关信息 here ;
关于php - Laravel Eloquent - 通过传递 JSON 变量插入到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22905069/