2017-07-05 14 views
1

php7.0Phalcon 3.2MongoDB 3.2.14Phalcon MongoDBは

私はMongoDBのに接続したいのですが、PhalconドキュメントでのみMongoClient経由の接続について()とそれに取り組んでいます。私はphp7.0を持っており、MongoClient()はその中で非難されています。ファルコンで\MongoDB\Driver\Manager()を正しく使うにはどうすればいいですか? services.phpで は、私がこれを書いた:

/** 
* MongoDB connection 
*/ 
$di->set("mongo", function() { 
     $config = $this->getConfig(); 

     $db_string = sprintf('mongodb://%s:%s/%s', $config->mongodb->host, $config->mongodb->port, $config->mongodb->database); 

     if(isset($config->mongodb->user) AND isset($config->mongodb->password)) { 
      $db_string = sprintf('mongodb://%s:%[email protected]%s:%s/%s', 
       $config->mongodb->user, 
       (string)$config->mongodb->password, 
       $config->mongodb->host, 
       (string)$config->mongodb->port, 
       $config->mongodb->database); 
     } 

     try { 
      return new \MongoDB\Driver\Manager($db_string); 
     } catch (MongoConnectionException $e) { 
      die('Failed to connect to MongoDB '.$e->getMessage()); 
     } 
    }, 
    true 
); 

それは動作します。しかし、モデルにはエラーがあります。 app/models/User.phpで私が書いた:

use Phalcon\Mvc\Collection; 

class User extends Collection 
{ 
    public function initialize() 
    { 
     $this->setSource('users'); 
    } 
} 

とコントローラで:

class IndexController extends ControllerBase 
{ 
    public function indexAction() 
    { 
     echo User::count(); 
    } 
} 

をブラウザで私は、この持っている:

Call to undefined method ::selectcollection() 
#0 [internal function]: Phalcon\Mvc\Collection::_getGroupResultset(Array, Object(User), Object(MongoDB\Driver\Manager)) 
#1 /var/www/testing/app/controllers/IndexController.php(8): Phalcon\Mvc\Collection::count() 
#2 [internal function]: IndexController->indexAction() 
#3 [internal function]: Phalcon\Dispatcher->callActionMethod(Object(IndexController), 'indexAction', Array) 
#4 [internal function]: Phalcon\Dispatcher->_dispatch() 
#5 [internal function]: Phalcon\Dispatcher->dispatch() 
#6 /var/www/testing/public/index.php(42): Phalcon\Mvc\Application->handle() 
#7 {main} 

私はcorrecltyそれを行うことができますどのように? :)私の英語の私のために申し訳ありません、私はロシアから:)

私の元の質問はhereです。

答えて