MARKER常量覆盖Symfony2错误

时间:2013-04-19 05:44:02

标签: mysql symfony doctrine-orm

所以,我设置了一个类别实体,其中parent_id是自引用的。但由于某些原因,当我在表单中保存条目时,我收到此错误。

Fatal error: Cannot inherit previously-inherited or override constant MARKER from interface Doctrine\Common\Persistence\Proxy in /var/www/html/project/vendor/doctrine/orm/lib/Doctrine/ORM/Proxy/Proxy.php on line 30

无法弄清楚它可能是什么。我根据Doctrine文档设置了关系。

/**
 * Set parent
 *
 * @param string $parent
 * @return Category
 */
public function setParent($parent)
{
    $this->parent = $parent;

    return $this;
}

/**
 * Get parent
 *
 * @return string 
 */
public function getParent()
{
    return $this->parent;
}

非常感谢任何帮助。

5 个答案:

答案 0 :(得分:6)

我做了一个不应该以任何方式影响Doctrine的更改后遇到了完全相同的问题(我更改了 Twig 模板)。过了一段时间,我意识到,因为在一个奇怪的时刻它是一个奇怪的编译错误,可能restarting php-fpm可以做到这一点。确实如此。

如果你在mod_php上,也许重启Apache会做同样的事情。

答案 1 :(得分:4)

重新启动服务器解决了我的问题。

(使用PHP 5.4.15,APC 3.1.13,Apache2.4.4,Doctrine2.2)

答案 2 :(得分:1)

显然这是Doctrine-bundle中的错误。将其更新到版本1.2。*(并随后更新依赖包)修复了该问题。

答案 3 :(得分:1)

我在Centos6-64上也遇到过php-fpm 5.4.19,nginx 1.4和APC 3.1.15(?)这个问题。正如马克也提到的那样,我也使用了Remi存储库。似乎3.1.15尚未正式发布。 pecl页面上甚至没有标签!看起来Remi试图修复一些东西以使其工作并将其命名为3.1.15,但无法弄清楚他试图修复的确切内容。

无论如何,我删除了包并使用pecl命令(现在是@ ​​3.1.13)安装了当前版本,这解决了我的问题。

答案 4 :(得分:0)

请理解,APC已经死亡,没有维护,PHP 5.4(或更高版本)不存在稳定版本。

我建议你切换到:

  • 操作码缓存的opcache(php-pecl-zendopcache)
  • APCu(php-pecl-apcu)用于用户数据缓存(提供与旧APC相同的API,不带操作码缓存)