cakephp mongodb: Уведомление (1024): подключение к локальному хосту: 27017 не удалось: неизвестная ошибка в mongodb_source.php - PullRequest
1 голос
/ 18 ноября 2011

Я получаю следующую ошибку при запуске своего сайта:

Notice (1024):connecting to localhost:27017 failed: Unknown error [APP\plugins\Mongodb\models\datasources\mongodb_source.php, line 201]Code | Context        } catch(MongoException $e) {
            $this->error = $e->getMessage();
            trigger_error($this->error);$host   =   "localhost:27017"
$e  =   MongoConnectionException
MongodbSource::connect() - APP\plugins\Mongodb\models\datasources\mongodb_source.php, line 201
MongodbSource::isConnected() - APP\plugins\Mongodb\models\datasources\mongodb_source.php, line 251
MongodbSource::read() - APP\plugins\Mongodb\models\datasources\mongodb_source.php, line 876
Model::find() - CORE\cake\libs\model\model.php, line 2130
MotorDevelopmentsController::search() - APP\controllers\motor_developments_controller.php, line 13
Dispatcher::_invoke() - CORE\cake\dispatcher.php, line 204
Dispatcher::dispatch() - CORE\cake\dispatcher.php, line 171
[main] - APP\webroot\index.php, line 87

Может кто-нибудь сказать, что я делаю неправильно?Спасибо.

Я поместил драйвер базы данных Mongodb (версия 0.4) для cakephp из https://github.com/ichikaway в \ merry_flowers \ plugins.Я переименовал его в Mongodb (верблюд).

В \ merry_flowers \ config \ database.php

    <?php
     class DATABASE_CONFIG {

var $default = array(
    'driver' => 'mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => 'root',
    'password' => 'pass',
    'database' => 'merry_flowers_db',
);

public $mongo = array(
    'driver' => 'mongodb.mongodbSource',
    'database' => 'student_db',
    'host' => 'localhost',
    'port' => 27017

);  

  }
      ?>

Я использую базу данных mysql (для всего) и mongodb (только для отчетовцель) для моего сайта.

в модели: motor_development.php

    <?php
class MotorDevelopment extends AppModel {
    var $name ='MotorDevelopment';
    //var $primaryKey ='student_id';
    var $useDbConfig='mongo';
    //var $useTable=false;
    var $mongoSchema=array(
                            'student_id'=>array('type'=>'integer','primary'=>true,'length'=>10),
                            'Draws freehand pictures'=>array('type'=>'string','length'=>1),
                            'Cuts and paste pictures'=>array('type'=>'string','length'=>1)
                            );

}


?>

merry_parents_controller.php

  .....
  $this->redirect(array('controller'=>'motor_developments', 'action'=>'search',$student_info));

контроллер: motor_developments_controller.php

      <?php
class MotorDevelopmentsController extends appController{
    //public $MotorDevelopment;
    public $name='MotorDevelopments';

    public function search(){
        echo 'SEARCH';
        var_dump($student_info);
        $x=$this->MotorDevelopment->find('one',array('conditions'=>array('MotorDevelopment.student_id'=>12)));
        $this->set('x',$x);
        $this->set(compact('x'));
    }
}
?>

Данные базы данных Mongodb:

mongodb database name: student_db
collection: motor_developments
the record i have inserted:
         student_id:12
         Draws freehand pictures:B
         Cuts and pastes pictures:B

1 Ответ

1 голос
/ 17 января 2012

У меня было много трудностей, чтобы заставить это работать, но я наконец сделал!Я создал репозиторий github с простым шаблоном с последней версией CakePHP с работающим источником данных MongoDB:

https://github.com/marcferna/CakePHP-MongoDB-Template

Если вы скачаете этот шаблон, и он не будет работать, это будетпроблема с сервером MongoDB, работающим на вашем локальном хосте.

Надеюсь, вы сможете заставить его работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...