【问题标题】:Symfony Doctrine schema update cannot redeclare classSymfony Doctrine 模式更新无法重新声明类
【发布时间】:2023-03-21 02:05:01
【问题描述】:

我正在尝试调试第 15 行中的错误“致命错误:无法在 C:\wamp\www\Symfony\src\Acme\UserBundle\entity\User.php 中重新声明类 Acme\UserBundle\Entity\User”当我想使用 Doctrine 命令“php app/console dictionary:schema:update --force”创建 Mysql 表时,我的命令窗口。

这是我的实体代码的顶部:

namespace Acme\UserBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\User\UserInterface;

/**
 * Acme\UserBundle\Entity\User
 *
 * @ORM\Table(name="acme_users")
 * @ORM\Entity(repositoryClass="Acme\UserBundle\Entity\UserRepository")
 */
class User implements UserInterface, \Serializable
{    
 //...

为了查看我可以在哪里双重声明我的“用户”类,我已将其重命名为“用户别名”并清除了我的缓存(使用“php app/console cache:clear”命令)。然后命令窗口给我错误“名称为'basededonne.acme_users'的表已经存在。'。但是,我在phpmyadmin中看不到这个表。此外,我的浏览器给我错误“User.php行中的FatalErrorException 15:编译错误:无法重新声明类 Acme\UserBundle\Entity\User_alias”(当我使用“User”类时,我的浏览器中没有错误)。

谁能给我一些其他的选择来探索解决这个问题?我猜我目前缺少一幅更大的图景。

【问题讨论】:

  • 一种可能是您使用另一个文件名备份了 User.php。所以用类 User 搜索整个项目,如果有的话?重命名它。并手动删除缓存,然后更新您的架构。

标签: symfony doctrine


【解决方案1】:

在您的User_alias.php 中有class User 定义。

当您尝试在此命令的预热部分清除缓存时,symfony 会根据您的项目文件生成一些缓存文件。所以在访问User.php 中的User 类后,它再次访问User_alias.php 中的User 类并抛出错误。

尝试在User_alias.php 中重命名您的课程,一切都会正常工作。

【讨论】:

  • 谢谢。这很有帮助。
猜你喜欢
  • 2016-07-09
  • 1970-01-01
  • 2013-08-07
  • 2012-04-10
  • 2011-03-22
  • 2023-03-29
  • 2016-02-24
  • 2018-02-16
  • 1970-01-01
相关资源
最近更新 更多