gpt4 book ai didi

mapping - 有没有一种方法可以在配置文件之外修改该学说的实体映射配置?

转载 作者:行者123 更新时间:2023-12-04 04:35:46 25 4
gpt4 key购买 nike

在我的标准Symfony2-app中,我与一些实体 bundle 在一起。其中一些实体不在自动映射原则所找到的标准文件夹中(例如/src/Acme/DemoBundle/Entities),而是位于其他位置。

我可以轻松地使用config.yml来告诉教义使用这样的其他位置:

doctrine:
orm:
auto_mapping: false
mappings:
AcmeDemoBundle:
type: annotation
prefix: Acme\DemoBundle\Entities\
dir: %kernel.cache_dir%\Acme\DemoBundle\Entities

这行得通。但是说我有10个具有不同映射的包,那么 config.yml很快就会肿。还有另一种方法,例如使用CompilerPass或通过DependencyInjection,所以我不需要在 config.yml中添加所有实体?我已经研究过 DoctrineBundle,但是到目前为止还没有运气。

最佳答案

要回答自己:

最简单的方法是调整自动加载,无需修改设置。在autoload.php中Symfony的标准发行版中,您必须向registerNamespace-method添加另一个位置:

$loader->registerNamespaces(array(
[...]
'Foo' => array(__DIR__.'/../src/dirA', __DIR__.'/../src/dirB')
));

然后,Doctrine将首先在dirA中查找“Foo” namespace 中的实体,如果找不到,则在dirB中查找。

关于mapping - 有没有一种方法可以在配置文件之外修改该学说的实体映射配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8940662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com