【发布时间】:2016-03-03 23:34:27
【问题描述】:
我有一个包含在其中定义的实体的捆绑包。我希望能够以这种方式配置这个捆绑包,这个实体将或不会相关。因此,如果正确配置了 bundle,则不应使用 app/console doctrine:schema:update 等创建实体表,或者应该 - 它应该取决于配置。
如何有条件地“禁用”实体,使其表不会由app/console doctrine:schema:update 创建?
【问题讨论】:
-
你可以告诉学说在映射部分下搜索实体的目录:symfony.com/doc/current/reference/configuration/doctrine.html 所以我想你可以把这个实体放在它自己的目录中。但我怀疑你可能让事情变得比他们需要的更困难。
-
原因是我目前有两个bundle:Config和ConfigDb,第二个是第一个的存储后端,它使用Doctrine。我想合并两者并默认提供数据库后端,但可切换。现在的问题是,如果它将与另一个后端服务切换,显然我不希望创建实体表:)。所以我需要创建这些表,并有条件地使用这些实体。
-
您可以在配置中禁用自动映射并使用手动映射。或者我认为更好的方法是创建具有映射的模型类,并在您的每个应用程序中实现扩展此模型的空实体。您甚至可以让这些模型实现接口并在引用中使用它,而不是在教义配置中用真实类替换接口。
标签: symfony doctrine-orm entity