【问题标题】:Laravel Eloquent - Insert to database by passing a JSON variableLaravel Eloquent - 通过传递 JSON 变量插入数据库
【发布时间】:2014-05-19 06:17:40
【问题描述】:

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

例如,如果我有:

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

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

【问题讨论】:

    标签: php json laravel-4 eloquent


    【解决方案1】:

    我认为没有办法直接做到这一点,但您可以将 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 中找到更多相关信息;

    【讨论】:

    • 您没有将 JSON 转换为关联数组,而是在数据库中手动插入值
    • 我不确定你的意思。我只是使用了与原始问题相同的 JSON 来更好地说明我的观点。无需手动设置所有值。
    猜你喜欢
    • 2022-06-29
    • 2019-05-25
    • 2019-06-24
    • 2015-09-19
    • 1970-01-01
    • 1970-01-01
    • 2016-04-03
    • 1970-01-01
    • 2018-07-15
    相关资源
    最近更新 更多