首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Phalcon MongoDb保存

Phalcon MongoDb保存
EN

Stack Overflow用户
提问于 2015-02-02 17:43:27
回答 1查看 838关注 0票数 0

我在Phalcon.It中保存集合的方法有问题,不起作用,也不会给我任何错误或其他东西。我想用mongoDb创建一个微型应用:

Phalcon版本: 1.3.4 php : 5.5.9

以下是已注册的服务:

代码语言:javascript
复制
<?php

use Phalcon\DI\FactoryDefault,
    Phalcon\Assets\Manager as AssetsManager,
    Phalcon\Mvc\Collection\Manager as CollectionManager,
    Phalcon\Mvc\View\Simple as View,
    Phalcon\Mvc\View\Engine\Volt,
    Phalcon\Mvc\Url as UrlResolver,
    Phalcon\Flash\Session as Flash,
    Phalcon\Flash\Direct as FlashDirect,
    Phalcon\Session\Adapter\Files as Session;

$di = new FactoryDefault();

$di['url'] = function () {
    $url = new UrlResolver();
    $url->setBaseUri('/dasshy/');
    return $url;
};

/**
 * Flash service with custom CSS classes
 */
$di['flash'] = function () {
    return new Flash(array(
        'error' => 'alert alert-error',
        'success' => 'alert alert-success',
        'notice' => 'alert alert-info',
    ));
};

/**
 * Flash service with custom CSS classes
 */
$di['flashDirect'] = function () {
    return new FlashDirect(array(
        'error' => 'alert alert-error',
        'success' => 'alert alert-success',
        'notice' => 'alert alert-info',
    ));
};

$di['session'] = function () {
    $session = new Session(array(
        'uniqueId' => 'dasshy-'
    ));
    $session->start();
    return $session;
};

$di['mongo'] = function () {
    $mongo = new MongoClient();
    return $mongo->selectDb("stats");
};

$di->set('collectionManager', function () {
    return new Phalcon\Mvc\Collection\Manager();
});

我想使用ODM,所以这里是model Collection:

代码语言:javascript
复制
<?php

namespace Dasshy\Models;

class Messages extends \Phalcon\Mvc\Collection
{
    public $content;

    public $senderId;

    public $receiverId;

    public $date;

}

下面是我如何在handlers.php中使用它:

代码语言:javascript
复制
<?php

use Dasshy\Models\Messages;
use Phalcon\Mvc\Micro\Collection;


$app->map('/send/{receiverId}/{senderId}/{content}', function ($receiverId, $senderId, $content) use ($app) {


    $messageModel = new Messages();

    $messageModel->receiverId = $receiverId;
    $messageModel->senderId = $senderId;
    $messageModel->content = $content;
    $messageModel->date = date('Y-m-d H-i-s', time());
    $messageModel->save();

    if ($messageModel->save() == false) {
        echo "Umh, We can't store robots right now: \n";
        foreach ($messageModel->getMessages() as $message) {
            echo $message, "\n";
        }
    } else {
        echo "Great, a new robot was saved successfully!";
    }
});

$app->map('/messages', function () use ($app) {

    var_dump(Messages::find());
    exit;
});

EN

回答 1

Stack Overflow用户

发布于 2015-07-02 23:26:58

您需要在服务上设置mongo连接...

代码语言:javascript
复制
        $config = $di->getShared('config')->mongo;
        $connect_data = $config->username . ':' . $config->password . '@' . $config->host . ':' . $config->port . '/' . $config->dbname;
        $mongo = new \MongoClient("mongodb://" . $connect_data);
        return $mongo->selectDB($config->dbname);

...since您没有连接到任何mongo服务器

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28274800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档