尽管我试图理解这个问题,但我仍然无法弄清楚发生了什么。我用 Symfony 2.7 开发了一个网站,它在开发模式下完美运行。当我在生产模式下测试它时,返回错误 500。
例外是:
Uncaught PHP Exception Symfony\Component\Debug\Exception\FatalErrorException:
"Error: Call to a member function getCacheFactory() on a non-object" at
/home/admdev-php/public_html/sfSUAPS/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php line 3039
{"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalErrorException(code: 0):
Error: Call to a member function getCacheFactory() on a non-object at
/home/admdev-php/public_html/sfSUAPS/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php:3039)"} []
所以我试图清除缓存,我得到了同样的信息:
[Symfony\Component\Debug\Exception\FatalErrorException]
Compile Error: require(): Failed opening required
'/home/stagiaire/workspace/suaps/app/cache/prod/doctrine/orm/Proxies/__CG__AppBundleEntityPlace.php'
(include_path='.:/usr/share/php:/usr/share/pear')`
我试图清除学说的缓存,但这并不能解决问题。
有几个角色:一个给学生,一个给老师,一个给管理员。当我的角色是学生时,我只会收到此错误。所以我更仔细地研究了相关的方法,我评论了与研究相关的所有内容,它奏效了。所以我认为该错误与我的实体存储库有关,因为“findBy”和“findAll”都失败了。
我查看了 Symfony 的代码,但错误似乎在我这边。我真的不知道发生了什么,如果你能帮助我,谢谢。
问题解决了
原来有人直接从缓存中使用了一个实体......