Symfony2:重命名后重新创建的实体

时间:2014-03-18 15:23:45

标签: php symfony doctrine-orm entity

我创建了一个捆绑超级,并创建了相对实体" sin_table1.php" as" sin_table1" mysql表生成。

之后:

 php app/console doctrine:generate:entities AcmeSuperBundle

  php app/console doctrine:schema:update --force

现在我可以看到生成的完整mysql表。

但是,如果我将sin_table1.php重命名为另一个名称为" mysql_schema.php",并且我尝试重新加载该命令,则doctrine / symfony2重新创建" sin_table1.php"实体文件。

我试图grep" sin_table1"键入symfony2根项目,但没有找到。只有缓存,日志和两个Entitiy文件(sin_table1.php& mysql_schema.php)。

我试图清理缓存,但没有发生任何事情,总是重新创建sin_table1.php,并且与mysql_schema.php冲突,因为同一个类有双重decaration。

我如何解决它? doctrine有sin_table1实体配置保存了吗?为什么会这样?

我认为我读了一些手册......

2 个答案:

答案 0 :(得分:0)

Namefile:mysql_schema.php

namespace Acme\SuperBundle\Entity;`
 use Doctrine\ORM\Mapping as ORM;`
    /**`
     * @ORM\Entity`
     * @ORM\Table(name="sin_table1")`
     */`
    class sin_table1`
    {....`

在我的新测试中,我将clas重命名为" sin_tablerrrrrrrrrr"以及@ORM \ Table(name =" sin_tablerrrrrrrrrr" ....

结果将是另一个文件sin_tablerrrrrrrrr.rp创建

如果我假设namefile必须与该类相同,我可以签名解决。

答案 1 :(得分:0)

  • 我总是将我的类名设置为与我的php文件名相同。我想这更像是开发者大会/最佳实践的义务。

  • 无论如何,几周前我遇到了同样的问题,我发现命令php app/console doctrine:schema:drop没有删除重命名的表。该命令未删除具有旧名称的表。因此,当我更新时,我有两个表。也许这是你的问题。