我一直在寻找解决问题的方法。但我无法找到任何解决方案。
当我尝试打开主页时,我总是收到此错误消息:
未捕获的异常' Doctrine \ Common \ Persistence \ Mapping \ MappingException'消息'类'测试\捆绑\用户捆绑\实体\用户'在链配置的命名空间中找不到'在...
奇怪的是,当我有以下网址时,我才会得到它:
但是当我在此网址上运行时,我没有收到任何错误,而且我的网页显示正确:
我的配置看起来像这样(config.yml):
# Doctrine Configuration
dbal:
default_connection: default
connections:
default:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
test:
driver: "%database_driver2%"
host: "%database_host2%"
port: "%database_port2%"
dbname: "%database_name2%"
user: "%database_user2%"
password: "%database_password2%"
charset: UTF8
orm:
default_entity_manager: default
entity_managers:
default:
connection: default
mappings:
TestUserBundle:
type: annotation
我在我的自定义服务中调用Doctrine:
public function __construct(EntityManager $em)
{
$repositiory = $em->getRepository('Test\Bundle\UserBundle\Entity\User');
$this->user = $repositiory->find($_SERVER['AUTH_USER']);
}
我的Symfony应用程序正在IIS Web服务器上运行。
你们知道我犯了什么错吗?
答案 0 :(得分:5)
映射名称为nextafterf(denom, positive_infinity)
,但路径为TestUserBundle
,不应将其命名为Test\Bundle\User\Bundle
吗?此外,通常TestBundleUserBundle
和mappings
在开发模式下设置为auto_generate_proxy_classes
,这可能解释了为什么它在那里工作而不是在生产中。
您可能想要查看documentation(Symfony 2.7),它会根据您的情况显示您应该如何配置映射。
true
doctrine:
# ...
orm:
# ...
auto_mapping: true
mappings:
# ...
AppBundle:
type: xml
dir: SomeResources/config/doctrine
最后但并非最不重要的是,在对doctrine:
# ...
orm:
# ...
mappings:
# ...
SomeEntityNamespace:
type: annotation
dir: "%kernel.root_dir%/../src/Entity"
is_bundle: false
prefix: App\Entity
alias: App
目录中的config.yml
或文件应用更改后,始终清除缓存目录。
如评论中所述: 您需要暂时停止可能正在使用prod目录的任何PHP进程(即,如果您已运行控制台服务器:运行)并再次尝试。如果不这样做,请尝试this
答案 1 :(得分:0)
事实证明,我的错误是我忘了在"供应商"中添加远程捆绑/捆绑在我的AppKernel文件中。
他们没有在" registerBundles"功能