mongodb - XML 格式的 Doctrine ODM 捆绑文档映射
问题描述
我正在将 Doctrine ODM 捆绑与 Symfony 4 一起使用。尝试对文档使用 XML 映射格式并收到以下错误:
No mapping file found named 'Post.mongodb.xml' for class 'App\Document\Post'.
我的学说_mongodb.yaml文件:
doctrine_mongodb:
auto_generate_proxy_classes: '%kernel.debug%'
auto_generate_hydrator_classes: '%kernel.debug%'
connections:
default:
server: '%env(MONGODB_URL)%'
options: {}
default_database: '%env(MONGODB_DB)%'
document_managers:
default:
auto_mapping: true
mappings:
App:
is_bundle: false
type: xml
dir: '%kernel.project_dir%/src/Resources/config/doctrine'
prefix: App\Document\
alias: App
文件src/Document/Post.php文件:
namespace App\Document;
class Post
{
protected $id;
protected $title;
protected $text;
//Getters and setters
}
XML 映射文件src/Resources/config/doctrine/Post.mongodb.xml:
<doctrine-mongo-mapping xmlns="http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping
http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping.xsd">
<document name="App\Document\Post">
<field fieldName="id" id="true" />
<field fieldName="title" type="string" />
<field fieldName="text" type="string" />
</document>
</doctrine-mongo-mapping>
作曲家配置(需要部分):
"require": {
"php": "^7.1.3",
"ext-ctype": "*",
"ext-iconv": "*",
"alcaeus/mongo-php-adapter": "^1.1",
"doctrine/mongodb-odm-bundle": "^3.5",
"symfony/console": "4.2.*",
"symfony/dotenv": "4.2.*",
"symfony/flex": "^1.1",
"symfony/framework-bundle": "4.2.*",
"symfony/yaml": "4.2.*"
}
有什么想法吗?
解决方案
我的配置中的一切都是正确的,除了值中的斜线prefix
。
根据文档:
映射文档的名称必须由类的完全限定名称组成,其中名称空间分隔符由点 (.) 替换。
如果您提供前缀,即文档的命名空间,您将获得如下映射文件名Post.mongodb.xml
例子:
Post
文档的命名空间App\Document
- 您的映射前缀
App\Document
- 分别映射文件名
Post.mongodb.xml
。
推荐阅读
- html - 如何禁用 Internet Explorer 的 CSS“转换:翻译”功能?
- c# - 在另一个 Razor 视图中嵌入一个 Razor 视图(同一个项目)
- python - 当文本包含大量数字、产品维度时如何应用 NLP
- google-api - 为什么 OnDataPointListener 不再被调用?
- javascript - 在gameStart球场开放功能上,看起来很整洁,但在手机上不会调整
- google-cloud-platform - 在两个项目之间设置服务帐号
- python - 如何使用继承,我错过了什么?
- angular - 由ng build引起的错误代码-1073741819是什么意思?
- java - 如何在 Kotlin 中更改 JSON 值
- android - 如何解决 ERROR_USER_NOT_FOUND