Laravel 5.2从MongoDB JSON响应更新MySQL数据库

时间:2016-07-15 02:34:46

标签: php mysql json mongodb laravel

如何从我从MongoDB中提取的数据更新MySQL数据库中的表?

我有一个从MongoDB中提取数据的函数

$recordid = '9depnuDz1XHl';

$mongodata = MongoDataPull::find($recordid);

当我运行以下内容时:

return [$mongodata];

这是我得到的回应:

[
    {
        "_id": "9depnuDz1XHl",
        "name": "Elliot",
        "surname": "Alderson",
        "email": "elliot@fsociety.com",
        "cell": "01239871234",
        "client": false,
        "payment": false,
        "user_id": "EVhTgHsh1H0A",
        "theme": "default"
    }
]

MySQL中的列名与响应中的列名略有不同。

表中的

MySQL列:

fname
lname
email
phone
client
payment
userid
theme

使用Eloquent,如何在映射到正确的列时使用MongoDB中的数据编写查询来更新MySQL?

1 个答案:

答案 0 :(得分:0)

如果您使用fill(),请确保模型上有$guarded$fillable。此外,find()仅在主ID为时才有效。否则,请使用where('primary_key', "=", $mongodata->_id)->first();

$MysqlModel = Model::find($mongodata->_id);

$MysqlModel->fill(['fname' => $mongodata->name, etc...]);

$MysqlModel->save();