2014-01-09 4 views
6

http://symfony.com/doc/current/bundles/DoctrineMongoDBBundle/index.html에있는 doctrine mongodb 요리 책을 사용하여 mongodb와 Symfony (버전 2.5.0-DEV)를 통합하는 데 문제가 있습니다.ClassNotFoundException : ...에서 클래스 "Mongo"를로드하려고했습니다. symfony2

'Persisting Objects to MongoDB'단계까지는 문제가 없습니다. 내가 선 "$dm->persist($script);"을 추가 할 때, 아무것도 내 원격 데이터베이스에 발생하지 나는 오류 메시지가 얻을 :

의 ClassNotFoundException를 :/var에/www /에서 심포니가/공급 업체의 글로벌 네임 스페이스의 클래스 "몽고"를로드하는 시도/doctrine/mongodb/lib/Doctrine/MongoDB/Connection.php 라인 283.이 클래스에 대한 use 문을 잊어 버렸습니까?

그러나 지속 라인이 없으면 스크립트는 오류없이 구문 분석하지만 원격 데이터베이스에서는 아무 것도 발생하지 않습니다.

이것은 내 Symfony 버전 (2.5.0)에 특히 해당하며 해결 방법이 있습니까? 사용 문을 포함하여 아래에 전체 스크립트를 붙여 넣었습니다. 어떤 도움을 주시면 감사하겠습니다 :).

namespace Atlas\MpBundle\Controller; 
use Atlas\MpBundle\Document\Scripts; 
use Symfony\Component\HttpFoundation\Response; 
use Symfony\Component\HttpFoundation\JsonResponse; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 

class UserjsonController extends Controller 
{ 
    public function showuserjsonAction() 
    { 
     $script = new Scripts(); 
     $script->setName('kingstest'); 
     $script->setDescription('just a desc test'); 
     $script->setGroup('SMS'); 

     $dm = $this->get('doctrine_mongodb')->getManager(); 
     $dm->persist($script); 
     $dm->flush(); 

     return new Response('Created New Document in scripts with script id '.$script->getId()); 
    } 
} 
+1

MongoDB PHP 확장 프로그램이 설치되어 있습니까? phpinfo() 출력이 알려줍니다. – Derick

+0

"doctrine_mongodb"를 서비스로 정의한 config를 보여줍니다. 왜냐하면 문제가 거기에 있다고 생각하기 때문입니다. – gprusiiski

+0

답장을 보내 주셔서 감사합니다. Derick, php -m (cli 사용)을 할 때 몽고를 모듈 중 하나로 볼 수 있습니다. @gprusiiski, 내 doctrine_mongodb은 다음과 같습니다 : #MongoDB 구성 doctrine_mongodb : 연결 : 기본 : 서버 : MongoDB를 : //192.168.101.188 : 27,017 옵션 : {} DEFAULT_DATABASE : mp_development document_managers : 기본 : auto_mapping : true – Kingsley

답변

3

감사합니다. 이제 작동합니다. 확장 mongo.so가 php.ini에로드되어야하고 잘못된 php.ini 파일을 편집했습니다. /etc/php5/apache2/에있는 php.ini에 extension=mongo.so을 추가했는데 이제 작동합니다. 앞으로이 문제가 도움이되기를 바랍니다.