gpt4 book ai didi

php - Symfony2 - 在链配置的命名空间中找不到类 'X'

转载 作者:可可西里 更新时间:2023-11-01 13:22:33 24 4
gpt4 key购买 nike

我一直在寻找解决我的问题的方法。但我找不到任何解决方案。

当我尝试打开主页时,我总是收到此错误消息:

奇怪的是,只有当我有以下 URL 时,我才会得到它:

http://localhost/

但是当我在这个 URL 上运行它时,我没有收到任何错误并且我的页面显示正确:

http://localhost/app_dev.php

我的配置如下所示 (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 网络服务器上运行。

你们知道我哪里做错了吗?

最佳答案

映射名称是TestUserBundle,但路径是Test\Bundle\User\Bundle,难道不应该命名为TestBundleUserBundle吗?此外,通常 mappingsauto_generate_proxy_classes 在开发模式下设置为 true,这可能解释了为什么它在那里工作而不是在产品中工作。

您可能想查看 documentation (Symfony 2.7) 它显示了您应该如何根据您的情况准确配置映射。

Bundle 中的自定义映射实体

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.ymlapp/config/ 目录中的文件应用更改后,请务必清除缓存目录。

如评论中所述:您需要暂时停止任何可能正在使用 prod 目录的 PHP 进程(即,如果您运行了控制台服务器:运行),然后重试。如果不行,试试 this

关于php - Symfony2 - 在链配置的命名空间中找不到类 'X',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32096956/

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