所以我似乎受到只影响 Symfony 生产模式而不是开发者模式的问题的困扰。这一次,我有一个 ManyToOne 关联,我试图只获取没有关联的实体(即它们在数据库中具有 NULL 值)。这与我在 dev move 中所期望的完全一样,但是在 prod 模式下,Doctrine 会抛出一个“无法识别的字段”异常......对于一个绝对存在的字段。
这是相关实体的相关部分(Page.php):
/**
* @ORM\ManyToOne(targetEntity="Project", inversedBy="pages")
* @ORM\JoinColumn(name="project_id", referencedColumnName="ID")
*/
protected $project;
这是来自 Controller (PageController.php) 的相关行:
$pages = $this->getDoctrine()->getRepository('JCScopingBundle:Page')->findBy(['project' => null]);
同样,使用 app_dev.php(即开发模式)可以完美地工作,但是使用 app.php(即生产模式)我不断收到“无法识别的字段”异常。是什么赋予了?
更新:我向同一个实体添加了一个“权重”整数字段,并且在
prod
中无法识别该字段模式。这意味着我不能使用 prod
模式,这意味着我无法将更改上传到远程服务器。真的在这里泡菜......
最佳答案
好吧,瞧瞧,重新启动 Apache 服务解决了这个问题。显然,这是真正清除 APCu 元数据缓存的唯一方法。基于这个问题/答案,我受到启发尝试这个:Doctrine mapped field is not working
关于symfony - Doctrine 2.5 : Unrecognized field (but only in Symfony's prod mode),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47105977/