教义2.5:无法识别的字段(但仅限于Symfony的生产模式)



所以我似乎受到了一些问题的困扰,这些问题只影响Symfony中的生产模式,而不影响开发人员模式。这一次,我有一个ManyToOne关联,我试图只获取没有关联的实体(即,它们在数据库中的值为NULL)。这与我在dev-move中预期的完全一样,但在prod模式中,Doctrine抛出了一个"未识别字段"异常。。。对于一个绝对存在的领域。

以下是所讨论实体的相关部分(Page.php):

/**
* @ORMManyToOne(targetEntity="Project", inversedBy="pages")
* @ORMJoinColumn(name="project_id", referencedColumnName="ID")
*/
protected $project;

这是来自控制器(PageController.php)的相关行:

$pages = $this->getDoctrine()->getRepository('JCScopingBundle:Page')->findBy(['project' => null]);

同样,这在使用app_dev.php(即dev模式)时非常有效,但在使用app.php(即prod模式)时,我不断收到"未识别字段"异常。什么东西?

更新:我向同一实体添加了一个"权重"整数字段,该字段在prod模式中也无法识别。这意味着我不能使用prod模式,也就是说我不能将更改上传到远程服务器。真的陷入困境。。。

好吧,你瞧,重新启动Apache服务解决了这个问题。显然,这是真正清除APCu元数据缓存的唯一方法。基于这个问题/答案,我受到了启发,尝试了一下:条令映射域不起作用

在我的情况下,我忘记重新启动"memcached"服务。

检查metadata_cache_driver类型。就我而言:

doctrine:
orm:
metadata_cache_driver:
type: memcached
host: localhost
port: 11211
instance_class: Memcached

由于以前的元数据是缓存的,所以在应用迁移后,条令使用了旧的缓存元数据,而不知道添加了什么新字段。

相关内容

  • 没有找到相关文章

最新更新