我创建了一个捆绑超级,并创建了相对实体" 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实体配置保存了吗?为什么会这样?
我认为我读了一些手册......
答案 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
没有删除重命名的表。该命令未删除具有旧名称的表。因此,当我更新时,我有两个表。也许这是你的问题。