Symfony2.8和Doctrine2问题

时间:2015-12-04 02:34:25

标签: php symfony doctrine-orm

我必须在这里遗漏一些东西。我从我的数据库中删除了一个表,并从symfony项目中删除了该表的实体文件。接下来,我创建了具有相同名称的表,并让doctrine从该表重新创建实体。一切都很好。值得一提的是列名称已更改但表名称相同。 当我调整twig和controller中的所有变量名并运行代码时,我得到了这个错误:Property AppBundle\Entity\WeatherSpecials::$df_per does not exist但是$ df_per不再是代码中的任何地方,我删除它,它存在于旧实体中但不存在新的一个。这是怎么发生的,symfony或doctrine如何记住旧变量并在错误中引用它。我觉得我在这里真的错过了什么。

3 个答案:

答案 0 :(得分:0)

原因可能是它存在于缓存中。尝试清除缓存。

php app/console cache:clear --env=[ENV]

答案 1 :(得分:0)

好的,我重命名了实体,现在它可以工作,但是到底是什么。有人必须了解这件事是如何记住"它必须以某种方式将它存储在某处。

答案 2 :(得分:0)

检查Doctrine是否未创建XML文件以映射数据库结构。也许它会这样做,如果你删除实体Doctrine继续使用xml文件而不是重新创建它们。

来自Symfony's Cookbook

  

从现有构建实体类的第一步   数据库是要求Doctrine内省数据库并生成   相应的元数据文件。元数据文件描述实体   要根据表字段生成的类。

     

$ php bin/console doctrine:mapping:import --force AcmeBlogBundle xml

     

此命令行工具要求Doctrine内省数据库和   生成XML下的XML元数据文件   捆绑包的src / Acme / BlogBu​​ndle / Resources / config / doctrine文件夹。   这会生成两个文件:BlogPost.orm.xml和BlogComment.orm.xml。