在localhost上工作正常。但是当上传到服务器时会抛出此错误。可能有什么不对?
未捕获的异常'Doctrine \ Common \ Persistence \ Mapping \ MappingException',消息'在链配置的命名空间中找不到类'Acme \ DemoBundle \ Entity \ User'FOS \ UserBundle \ Entity,Acme \ BazaBundle \ Entity, FOS \ UserBundle \模型'
config.yml:
fos_user:
db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
firewall_name: main
user_class: Acme\DemoBundle\Entity\User
答案 0 :(得分:0)
这是因为您正在引用未注册的包中的类。您可能删除了AppKernel.php中AcmeDemoBundle的初始化,但它仍然在您的FOSUser配置中引用它。
您需要为捆绑包创建一个User实体,并在fos_user下的user_class参数中引用它,或者如果您使用AcmeDemoBundle来保存您的User实体,那么只需在AppKernel.php中重新初始化它
答案 1 :(得分:0)
默认情况下,Acme软件包仅在开发和测试环境中可用。只要你在localhost上工作,这不是问题。您可能正在开发环境和app_kernel.php中工作Acme \ DemoBundle设置为仅在环境为dev或test时初始化。所以它的工作正常。
在您的服务器上,您无法通过localhost访问您的网站。这意味着开发环境不可用。您在生产环境中工作。就像我上面解释的那样,生产环境没有初始化Acme \ DemoBundle,因此无法找到您的用户实体。
有两种可能性:
转到你的app-kernel.php: 找到行“$ bundles [] = new Acme \ DemoBundle \ AcmeDemoBundle();”并删除它。然后将以下行(“new Acme \ DemoBundle \ AcmeDemoBundle(),”)添加到第一个bundle数组中。
创建一个新的包并将其添加到您的app.kernel.php并将您的User类放入该包中。
如果你只是创建一个供个人使用的网站,第一个选项可能是最快和最好的选项,但是如果你希望你的包被命名为nice,你应该使用最后一个。 祝你好运