【问题标题】:Laravel 5.2 Update MySQL Database from MongoDB JSON ResponseLaravel 5.2 从 MongoDB JSON 响应更新 MySQL 数据库
【发布时间】:2016-11-18 03:04:11
【问题描述】:

如何从我从 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,同时映射到正确的列?

【问题讨论】:

    标签: php mysql json mongodb laravel


    【解决方案1】:

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

    $MysqlModel = Model::find($mongodata->_id);
    
    $MysqlModel->fill(['fname' => $mongodata->name, etc...]);
    
    $MysqlModel->save();
    

    【讨论】:

    • 您好,当我使用您的解决方案时出现以下错误:Call to a member function fill() on null
    • $mongodata->_id 是否返回值?另外,您的新数据库中是否有与 id 对应的模型?如果您不更新记录,那么您将需要 new Model(); $MysqlModel->create([...]);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    相关资源
    最近更新 更多