私は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"
},
キャッシュを削除してWebサーバーを再起動しましたか? – Mz1907
@ Mz1907はい.... – Elshobokshy
devとprodキャッシュの両方を削除しましたか? – Mz1907