【问题标题】:Yii2 : How to update the record using mongodbYii2:如何使用 mongodb 更新记录
【发布时间】:2014-12-09 10:03:06
【问题描述】:

我正在使用 mongodb 来更新记录。我正在从用户那里获取团队名称和描述,并按照我在仪表板控制器中编写的代码在数据库中更新它

if ($model->load(Yii::$app->request->post()) && $model->validate()) {

    $username = Yii::$app->session['username'];

    $user = Yii::$app->mongodb->getCollection('teamdashboard');
    $record = $user->findOne(array('username'=>$username));

    $record['teams']['team_name']=$model->team_name;
    $record['teams']['team_description']=$model->team_description;
    $record['teams']['time_created']='';
    $record['teams']['team_updated']='';

    $record->save();

save() 被称为它显示Call to a member function save() on a non-object。我想在现有文档中插入新的团队数据。

我不能使用插入,因为我希望将所有表单都添加到一个用户特定的文档中。插入命令将在集合中插入新行。

yii2 是否支持嵌入式对象映射和操作???

【问题讨论】:

    标签: mongodb yii2


    【解决方案1】:

    (我想知道同样的事情,对于任何想知道的人来说,看起来它不受官方支持)

    Yii 2.0 文档状态:

    此扩展不提供任何特殊的使用方式 嵌入文档(子文档)。一般建议是避免 如果可能的话。

    "Yii 模型设计假设单个属性是一个标量。

    来自: https://github.com/yiisoft/yii2-mongodb#working-with-embedded-documents

    我能够成功地从 MongoDB 中读取项目,只需像常规数组一样 foreach 变量。

    【讨论】:

    • OMG...@Entryton 我知道因为我尝试用其他可能的方式来做这件事,但找不到有效的方法。你有任何想法或任何其他方式来做到这一点。请建议您是否有...
    • 是的,但是您必须使用 MongoDB 的 PECL 函数。 PHP 文档提供了大量示例:php.net/manual/en/mongocollection.insert.php
    • 除了 Yii 2.0 框架之外,您将使用单独的函数 - 我还没有亲自尝试过(我会在有时间的时候看到),所以我不知道它是否将在框架内开箱即用。
    猜你喜欢
    • 1970-01-01
    • 2011-06-19
    • 2017-09-26
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多