【发布时间】:2014-01-12 04:44:02
【问题描述】:
今天我遇到了一个非常奇怪的情况。我正在 Doctrine Symfony2 中的两个实体之间实现一个简单的 1:m 关系。
有用户和组。每个用户都应该被添加到一个组中。
但是每 3-4 次重新加载我的控制器就会吐出一个错误。
FatalErrorException: Compile Error: Cannot redeclare class Proxies\__CG__\Creativebrains\AthleteBundle\Entity\Group in /var/www/symfony2/app/cache/dev/doctrine/orm/Proxies/__CG__CreativebrainsAthleteBundleEntityGroup.php line 8
稍后重新加载,我得到了正常的 JSON 输出
{
id: 1,
username: "dominik",
email: "dominik@creativebrains.net",
enabled: true,
displayname: "Dominik",
group: {
name: "asd"
...
}
}
我认为这是某种缓存错误,但我不明白为什么。
希望有人知道答案。 祝你有美好的一天!
【问题讨论】:
-
核对缓存:来自项目根目录的
rm -rf app/cache/*。 -
您好,谢谢,但我已经尝试过几次了。我现在有一个理论认为是 Vagrant/NFS 造成了损害。当我将缓存文件夹移动到 /tmp/ 时,它似乎可以工作。我会进一步研究它并让你更新。祝你有美好的一天。
-
是的,我在 MacBook 上使用 vagrant/nfs 时也遇到过问题。我必须用
rm -rf核对缓存,然后从 VAGRANT BOX 运行php app/console cache:clear -e=prod -n。大声笑我必须强调,因为从本地终端运行它会做一些奇怪的事情。我想我还必须在 AppKernel 和控制台中将 umask 设置为 0000。 -
我也一直被这个错误困扰。我没有使用任何奇怪的东西,比如 Vagrant 或 NFS,只是 nginx + php-fpm。我已将问题追溯到 APC。似乎任何时候两个同时请求都有某种竞争条件创建这些缓存文件。每当发生这种情况时,我都会重新启动 php-fpm,一切都很好。不确定我们如何解决它,但关闭 APC 可以防止它发生。
标签: php symfony doctrine-orm fatal-error