Ich versuche, MongoDB mit Phalcon API Framework zu verbinden. Mein Code ist wie unten:MongoDB und Phalcon API
index.php
<?php
if ($handle = opendir('include/models')) {
while (false !== ($entry = readdir($handle))) {
if (preg_match('/\.php$/', $entry)) {
require_once "include/models/$entry";
}
}
closedir($handle);
}
require 'vendor/autoload.php';
use Phalcon\DI\FactoryDefault;
use Phalcon\Mvc\Model;
$app = new Phalcon\Mvc\Micro();
$di = new \Phalcon\DI\FactoryDefault();
$config = new Phalcon\Config\Adapter\Ini('include/config/config.ini');
// Simple database connection to localhost
$di->set('mongo', function() {
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
return $manager->selectDb("MyApi");
},true);
$di->set('collectionManager', function() {
return new Phalcon\Mvc\Collection\Manager();
});
$app->setDI($di);
$directory = new User_detail();
$app->get('/userdetail/{code}', function ($code) use ($app,$directory) {
$directory->getUser($app,$code);
});
$app->notFound(function() use ($app) {
$app->response->setStatusCode(424, "Method Failed")->sendHeaders();
echo json_encode(array('status' => 'ERROR', 'messages' => "Method Failed"));
});
$app->handle();
?>
Modelldatei User_detail.php
<?php
use Phalcon\Mvc\Collection;
use Phalcon\Mvc\Model;
use MongoDB\Driver\Manager;
use Phalcon\Mvc\Micro;
use Phalcon\Db\Column;
class User_detail extends Collection
{
public function initialize()
{
$this->setSource("User");
}
function getUser($app,$code)
{
$robot = User_detail::findFirst(
[
[
"Name" => "android",
]
]
);
echo $robot->Name; die;
}
}
?>
Ich erhalte Fehler als
Error: Call to undefined method MongoDB\Driver\Manager::selectDb() in index.php
Was falsch ist in es?
Ihr Fehler Sie sagt, dass die Methode 'selectDb' nicht in der Klasse existiert' MongoDB \ Driver \ Manager'. Wenn Sie diese Klasse öffnen, werden Sie sehen, dass die Methode dort nicht existiert ... und Ihnen den Fehler gibt. – Timothy
Danke !!! Haben Sie eine Vorstellung davon, mit welcher Funktion die Datenbank ausgewählt wird? – Khushal
Wenn ich mich nicht irre, benutze: '$ manager = new MongoClient(); return $ manager-> selectDB ("MyApi"); '. Überprüfen Sie die Dokumentation: https://docs.phalconphp.com/de/3.0.1/reference/odm.html#setting-a-connection. Aber wenn Sie PHP7 verwenden, sollten Sie in der Tat den Phalcon-Inkubator verwenden: https://github.com/phalcon/incubator/tree/master/Library/Phalcon/Db/Adapter – Timothy