我必须在这里遗漏一些东西。我从我的数据库中删除了一个表,并从symfony项目中删除了该表的实体文件。接下来,我创建了具有相同名称的表,并让doctrine从该表重新创建实体。一切都很好。值得一提的是列名称已更改但表名称相同。
当我调整twig和controller中的所有变量名并运行代码时,我得到了这个错误:Property AppBundle\Entity\WeatherSpecials::$df_per does not exist
但是$ df_per不再是代码中的任何地方,我删除它,它存在于旧实体中但不存在新的一个。这是怎么发生的,symfony或doctrine如何记住旧变量并在错误中引用它。我觉得我在这里真的错过了什么。
答案 0 :(得分:0)
原因可能是它存在于缓存中。尝试清除缓存。
php app/console cache:clear --env=[ENV]
答案 1 :(得分:0)
好的,我重命名了实体,现在它可以工作,但是到底是什么。有人必须了解这件事是如何记住"它必须以某种方式将它存储在某处。
答案 2 :(得分:0)
检查Doctrine是否未创建XML文件以映射数据库结构。也许它会这样做,如果你删除实体Doctrine继续使用xml文件而不是重新创建它们。
从现有构建实体类的第一步 数据库是要求Doctrine内省数据库并生成 相应的元数据文件。元数据文件描述实体 要根据表字段生成的类。
$ php bin/console doctrine:mapping:import --force AcmeBlogBundle xml
此命令行工具要求Doctrine内省数据库和 生成XML下的XML元数据文件 捆绑包的src / Acme / BlogBundle / Resources / config / doctrine文件夹。 这会生成两个文件:BlogPost.orm.xml和BlogComment.orm.xml。