2017-11-17 6 views
2

私はDoctrineMongoDBBundleを使用しようとしているが、それは私にこのエラーが発生します名前空間からクラス「オブジェクトID」をロードしようとしました:は「MongoDBの BSON」

名前空間からクラス「オブジェクトID」をロードしようとしました「のMongoDB \ BSON " あなたは別の名前空間に "use"ステートメントを忘れましたか?

私はすべての理由を理由に検索しましたが、なぜこのエラーが発生するのかわかりませんでした。

mongodbが正常にインストールされています。mongodbのステータスが有効であることがわかります。私はクラスを正しく設定していると思います。どこからエラーが出るのですか?

スタックトレース:

のSymfony \コンポーネント\デバッグ\例外の\にClassNotFoundException:名前空間 "のMongoDB \ BSON" から 負荷クラス "オブジェクトID" にしようとしました。別の名前空間に "use"ステートメント を忘れましたか?

ベンダー/ alcaeus/Mongoの-PHP-アダプタ/ LIB /モンゴ/ MongoId.phpにおいて:224

MongoId-で> createObjectID(ヌル) (ベンダー/ alcaeus/Mongoの-PHP-アダプタ/ LIB/MongoIdにおける41)

- > __コンストラクト() (ベンダー/ドクトリン/ MongoDBの-ODM/LIB /ドクトリン/ ODM /のMongoDB/ID/AutoGenerator.php:/ MongoId.php Mongoの34)

で Doctrine \ ODM \ MongoDB \ Id \ AutoGenerator-> generate(オブジェクト(DocumentManager)、 オブジェクト(Product)) (ベンダー/ドクトリン/ MongoDBの-ODM/LIB /ドクトリン/ ODM /のMongoDB/UnitOfWork.php:1107)

教義\ ODM \ MongoDBの\ UnitOfWork-> persistNew(オブジェクト(ClassMetadata)、 オブジェクト(商品で)) (ベンダー/ドクトリン/ MongoDBの-ODM/LIB /ドクトリン/ ODM /のMongoDB/UnitOfWork.php:1710)

教義\ ODM \ MongoDBの\ UnitOfWork-> doPersist(対象(商品)、 アレイ(AT教義\ ODM \ MongoDBの\ UnitOfWで1674)

: '000000002ed55d6b00000000057952ca' =>オブジェクト(製品))) (ベンダー/ドクトリン/ MongoDBの-ODM/libに/ドクトリン/ ODM/MongoDBの/ UnitOfWork.php ork->持続(対象(商品)) (ベンダー/ドクトリン/ MongoDBの-ODM/LIB /ドクトリン/ ODM /のMongoDB/DocumentManager.php:412)教義に

\ ODM \ MongoDBの\ DocumentManager->持続(オブジェクト(製品)) (SRC /アクメ/ StoreBundle /コントローラ/ DefaultController.php:30)アクメ\ StoreBundle \コントローラ\ DefaultController-> createAction()call_user_func_arrayで

(配列(オブジェクトで

(DefaultController )、 'createAction') (ベンダー/ symfony/symfony/src/Symfony /コンポーネント/ HttpKernel/HttpKernel.php:153) at Symfony \ C (ベンダー/ symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel)を参照してください。PHP:68)

のSymfony \コンポーネント\ HttpKernel \ HttpKernel->ハンドル(オブジェクト(リクエスト)、 1、真) (ベンダー/ symfonyの/ symfonyの/ SRC/symfonyの/コンポーネント/ HttpKernel/Kernel.phpで: 169)

のSymfony \コンポーネント\ HttpKernel \ Kernel->ハンドル(オブジェクト(リクエスト)) (ウェブ/ app_dev.phpで

:29)

で必要( '/ var/www/htmlと設定/ geoservicesgrandnancy/Web/app_dev.php ') (ベンダー/ symfony/symfony/src/Symfony/Bundle/WebServerBundle/Resources/router.php:42)

php --ri mongodb | grep version

出力:

MongoDBの拡張バージョン=> 1.3.2、libbsonバンドルバージョン=> 1.8.1、 libmongocバンドルバージョン=> 1.8.1

実証する簡単な例:

<?php 

namespace Acme\StoreBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
use Symfony\Component\HttpFoundation\Response; 
use MongoDB\BSON\ObjectID; //Adding this or not doesn't change anything 

class DefaultController extends Controller 
{ 
    /** 
    * @Route("/") 
    */ 
    public function indexAction() 
    { 
     var_dump(new MongoDB\BSON\ObjectID); die(); 
     return $this->render('AcmeStoreBundle:Default:index.html.twig'); 
    } 
} 

そしてcomposer.json GOTが必要です。

"require": { 
     "php": ">=5.5.9", 
     "alcaeus/mongo-php-adapter": "^1.1", 
     "doctrine/doctrine-bundle": "^1.6", 
     "doctrine/mongodb-odm": "^1.2", 
     "doctrine/mongodb-odm-bundle": "^3.4", 
     "doctrine/orm": "^2.5", 
     "incenteev/composer-parameter-handler": "^2.0", 
     "sensio/distribution-bundle": "^5.0.19", 
     "sensio/framework-extra-bundle": "^3.0.2", 
     "symfony/monolog-bundle": "^3.1.0", 
     "symfony/polyfill-apcu": "^1.0", 
     "symfony/swiftmailer-bundle": "^2.3.10", 
     "symfony/symfony": "3.3.*", 
     "twig/twig": "^1.0||^2.0" 
    }, 
+0

キャッシュを削除してWebサーバーを再起動しましたか? – Mz1907

+0

@ Mz1907はい.... – Elshobokshy

+0

devとprodキャッシュの両方を削除しましたか? – Mz1907

答えて

0

こんにちはあなたは「alcaeus /モンゴ-PHP-アダプタ」を含める必要があります。あなたのパッケージの一部として、「^ 1.1」とも

"provide": { 
    "ext-mongo": "1.6.12" 
    }, 

完全な作曲家のような障害の解像度として期待Mongoの拡張を公開ファイルは次のようになります

{ 
    "require": { 
    "php": "^7.1.3", 
    "ext-mongodb": ">=1.1.2", 
    "alcaeus/mongo-php-adapter": "^1.1", 
    "doctrine/mongodb-odm-bundle": "^3.3", 
    ... 
    }, 
    "provide": { 
    "ext-mongo": "1.6.12" 
    } 
    ... 
} 
+0

お試しいただきありがとうございますが、私はすでに設定していますが、うまくいかないのです:)私はext-mongodbをrequireセクションに入れませんでしたが、追加することでエラーは修正されません。私は提供していた。 – Elshobokshy

+0

thats私はその設定がうまく動いているプロジェクトを持っています。それはあなたのバージョンや設定上に何か他のものかもしれません。おそらく、拡張機能はウェブサーバのために正しく設定されていません – bitgandtter

関連する問題