1

次の階層を設定しています。

/src
    /application
        /models
            User.php, Item.php, etc.
   /config
        /mappings
            /yaml
                application.models.User.dcm.yml

モデルの名前空間は「application\models」です。それらはすべて「Doctrine\ORM\Mapping AS ORM を使用」します。ブートストラップで Doctrine の ClassLoader を使用しています。これらはすべて機能しているようです。

アプリを実行するたびに、次のエラーが発生します。

Warning: class_parents(): Class User does not exist and could not be loaded in /Library/WebServer/Documents/goodsam/library/Doctrine/Common/Persistence/Mapping/RuntimeReflectionService.php on line 40

Warning: array_reverse() expects parameter 1 to be array, boolean given in /Library/WebServer/Documents/goodsam/library/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php on line 257

Warning: Invalid argument supplied for foreach() in /Library/WebServer/Documents/goodsam/library/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php on line 257

Fatal error: Uncaught exception 'ReflectionException' with message 'Class User does not exist' in /Library/WebServer/Documents/goodsam/library/Doctrine/Common/Persistence/Mapping/RuntimeReflectionService.php:73
Stack trace:
#0 /Library/WebServer/Documents/goodsam/library/Doctrine/Common/Persistence/Mapping/RuntimeReflectionService.php(73): ReflectionClass->__construct('User')
#1 /Library/WebServer/Documents/goodsam/library/Doctrine/ORM/Mapping/ClassMetadataInfo.php(867): Doctrine\Common\Persistence\Mapping\RuntimeReflectionService->getClass('User')
#2 /Library/WebServer/Documents/goodsam/library/Doctrine/ORM/Mapping/ClassMetadataFactory.php(511): Doctrine\ORM\Mapping\ClassMetadataInfo->initializeReflection(Object(Doctrine\Common\Persistence\Mapping\RuntimeReflectionService))
#3 /Library/WebServer/Documents/goodsam/library/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php(300): Doctrine\ORM\Mapping\ClassMetadataFactory->initializeReflection(Object(Doctrine\ORM\Mapping\ClassMetadata), Object(Doctrine\Comm in /Library/WebServer/Documents/goodsam/library/Doctrine/Common/Persistence/Mapping/RuntimeReflectionService.php on line 73

まず、Doctrine は、yaml マッピング ファイルは完全修飾クラス名でなければならないと言っています。そのため、application\models ディレクトリを指している場所に名前を付けました。ただし、ドキュメントの例では、マッピング ファイル自体を完全に修飾する必要があるように見えます。これはどれですか?

これが私のマッピングファイルの上部です:

# application.models.User.dcm.yml
application\models\User: 

これが正しいように見える場合、何が壊れている可能性があるかについての他の手がかりはありますか?

4

0 に答える 0